首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP json编码为JS不能获得完整的HTML

PHP json编码为JS不能获得完整的HTML
EN

Stack Overflow用户
提问于 2018-08-12 09:35:23
回答 2查看 38关注 0票数 -1

由于某些原因,当我先使用json_encode,然后使用JSON.parse来获取JS -HTML中的数组时,字符串只能获取字符串的结束标记。举个例子:

代码语言:javascript
复制
$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中:

代码语言:javascript
复制
const someArray = $('#data').text();
const data = JSON.parse(someArray);

输出如下所示:

代码语言:javascript
复制
0:
  title: "this is a title</strong>",
  text: "this is some text</p>"

你知道是什么原因造成的吗?

EN

回答 2

Stack Overflow用户

发布于 2018-08-12 09:48:58

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

更改此行:

代码语言:javascript
复制
<div id="data"><?php echo json_encode($php_array); ?></div>

要这样做:

代码语言:javascript
复制
<script> var data = <?php echo json_encode($php_array); ?>; </script>
票数 2
EN

Stack Overflow用户

发布于 2018-08-15 04:37:42

通过将htmlspecialchars()添加到特定的HTML项来修复此问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51805033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档