我试图json_encode
在一个大数组上使用,结果什么都不返回(是的,我检查它是 utf-8)。当我开始调查这个问题时,我发现当字符串大于 65536 时会出现问题。
因此,当我的数组大小为 1245 时,它的字符串 fromjson_encode
的长度为 string(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>';
PS对不起各位。我发现了这个问题,这要感谢一个名字不可复制的人:-)(感谢你的劳伦斯)。
<pre>
是罪魁祸首......由于某种原因,它不会在我的浏览器中打印字符串,但它就在那里。
劳伦斯,如果你愿意,你可以写出来,我会接受它是正确的。因为你是我想出这个的原因。