PHP json编码到JS没有得到完整的HTML怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (264)

因为某种原因当我用json_encode and then JSON.parse要获取JS-HTML字符串中的数组,字符串只能获得字符串的结束标记。例如:

$php_array = array (
    "title" => "this is a <strong>title</strong>",
    "text" => "<p>this is some text</p>"
)
<div id="data"><?php echo json_encode($php_array); ?></div>

然后在JS:

const someArray = $('#data').text();
const data = JSON.parse(someArray);

输出:

0:
  title: "this is a title</strong>",
  text: "this is some text</p>"

为什么会这样呢

提问于
用户回答回答于

通过添加htmlspecialchars() 到特定的HTML。

用户回答回答于

你正在输出HTML,而浏览器就是这样解释它的。

改变:

<div id="data"><?php echo json_encode($php_array); ?></div>

为:

<script> var data = <?php echo json_encode($php_array); ?>; </script>

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励