我正在为我的工作场所制作一个Web应用程序,一次性从SQL表中下载大约40,000行数据,将数据放入嵌套的PHP数组中,然后尝试回显JSON编码的数组,其中a JavaScript变量应该捕获内容。
如果我尝试将数据直接回显到标签中,它可以正常工作 - 一切都完美显示 - 格式化为JSON编码的字符串。但是,如果我尝试将数据回显到<script>
标记,在语音标记“或”之间,则会在chrome中引发错误,说“未捕获的SyntaxError:意外的标识符” - 当我尝试滚动到(非常长)字符串的结尾,它似乎被切断了,只有几千个字符。
字符串实际上是1,476,075个字符长。
我如何解决这个问题?我正在重新构建应用程序 - 它最初基本上将javascript与SQL结果结合在一起,同时迭代结果行,但这是如此缓慢和笨重,所以我想到一种更简单快捷的方法将数据从PHP移动到JavaScript,将是使用大型JSON编码字符串。
非常感谢任何建议。
答案 0 :(得分:2)
json_encode()负责所有需要完成的引用/转义:
<?php
$foo = 'this is a simple string';
?>
<script>
var foo = "<?php echo json_encode($foo); ?>"; // incorrect
var bar = <?php echo json_encode($foo); ?>; // correct
上述构造将创建:
var foo = ""this is a simple string"";
^--- your quote
^---the quote json_encode added
var bar = "this is a simple string"; // all-ok here.