php json_encode大数组

Sal*_*ali 6 php json

我试图json_encode在一个大数组上使用,结果什么都不返回(是的,我检查它是utf-8).当我开始调查此问题时,我发现当字符串变得大于65536时会出现问题.

因此,当我的数组大小为1245时,其字符串来自字符串json_encode长度(65493),但是当我将数组增加一个时,字符串变得长于65536,json_encode无法输出任何结果.

我认为问题是因为memory limit,但当我检查我的php.ini时,我发现它是-1.

知道什么可能是个问题吗?

基本上我做的是这样的:

$arr = array();
for($i =0; $i<9000; $i++){
    $arr[] = array(
        'name'  => 'test',
        'str'   => md5($i)
    );
}
echo '<pre>'.json_encode($arr).'</pre>';
Run Code Online (Sandbox Code Playgroud)

PS对不起伙计们.我发现了这个问题,感谢一个名字不明确的人:-)(谢谢你的劳伦斯). <pre>是罪魁祸首...由于某种原因,它不会在我的浏览器中打印字符串,但它就在那里.

劳伦斯,如果你愿意,你可以写它,我会接受它是正确的.因为你是我想出这个的原因.

Sal*_*ali 1

只是为了消除对这个问题的困惑。答案已经找到了,就在问题里。

功能上没有什么问题json_encode。它对于每个输出都能正确工作。除了您的记忆以及您为脚本提供的记忆量之外,没有任何限制。

问题出在浏览器的<pre>标签实现上。如果您为此标签提供太大的字符串,它不会打印任何内容。所以出路就是输出没有<pre>标签的答案