考虑下面的代码,将json字符串从php发送给js,
<?php
$str = "<!--<script>"; // This is from user input
?>
<script>
var json_str = <?= json_encode($str) ?>;
</script>
该字符串将破坏HTML,解决问题的方法是通过类似旧学校评论的方法,例如。
<script>
<!--
var json_str = <?= json_encode($str) ?>;
//-->
</script>
还有其他选择吗?
答案 0 :(得分:5)
您可以使用标记JSON_HEX_TAG
,以便<
和>
分别编码为\u003C
和\u003E
。
json_encode($str, JSON_HEX_TAG)