我在php中有一个大型数组,包含许多子数组。 (大约100个子数组,每个子数组至少包含3级嵌套数组,其中一些文本中包含'
和"
标记。我想json_encode()
这个数组,并将其存储为HTML data
元素。
这是我用来在html中存储数据的代码:
echo "<div id='map' data-nodes='".json_encode($nodes)."'></div>";
我尝试过很多不同的事情,似乎无法解决这个问题。每次我尝试将这个大的json字符串添加到它时,我的HTML都会中断。问题必须以某种方式使用斜杠,但我无法弄清楚如何解决它。
到目前为止我所做的尝试:
1.将htmlspecialchars()
和/或addslashes()
分别添加到文本子阵列中
2.添加&#39; addslashes()&#39;在json编码整个阵列之后
3.将回显中的引号从双斜线更改为单斜线,反之亦然
4.所有这四种的混合。
当我渲染页面时,可以清楚地看到data-nodes
HTML数据元素以双引号结束,并且后面仍有文本。
任何想法我做错了什么?
答案 0 :(得分:0)
在html中存储一个大的json本身似乎不是一个好主意:)
如果你想通过javascript访问它,你可以在<script>
块中声明一个变量:
<div id='map'></div>
<script type="text/javascript">
var mapData = <?php echo json_encode($nodes); ?>;
</script>
此外,通过这种方式,您获得significant performance improvement。
P.S。是的,你得到一个全局变量