我想在大数组上使用json_encode
,结果什么都没返回(是的,我检查它是utf-8)。当我开始调查此问题时,发现问题出现在字符串变得大于65536时。php json_encode big array
因此,当我的数组大小为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>';
附:对不起。我发现了这个问题,这要感谢一位不可打印名字的人:-)(感谢你的劳伦斯)。 <pre>
是罪魁祸首...由于某种原因,它不会在我的浏览器中打印字符串,但它在那里。
劳伦斯,如果你愿意,你可以写下来,我会接受它是正确的。因为你是我提出这个问题的原因。
请确保错误报告已启用 – HamZa
你能否再重现行为,在一个例子。 –
它不打印字符串,但它实际上在那里?现在,这甚至是更怪异的。 ':P' –