PHP JSON编码为JS无法获取完整的HTML

时间:2018-08-12 01:35:23

标签: php jquery arrays json

由于某种原因,当我使用json_encode然后使用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>"

有什么想法会导致这种情况吗?

2 个答案:

答案 0 :(得分:2)

您正在输出HTML,而浏览器正在将其解释为这样。

更改此行:

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

对此:

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

答案 1 :(得分:0)

通过将htmlspecialchars()添加到特定的HTML项目中来解决此问题。