拿这段代码:
$json = file_get_contents($this->url, true);
$decode = json_decode($json, true);
foreach ($decode as $key => $value) {
...
}
很简单,嗯?
传递一个最多包含 500 个数组元素的 $json.... 工作正常!
超过这个限制...错误是:
Warning: Invalid argument supplied for foreach() in /c/website/retriever/WsGlassRetriever.php on line 19
该函数的参数是否有内存限制?
我没有在文档中找到任何关于它的信息。我的版本是 PHP 5.2.17-rnx1.1 with Suhosin-Patch 0.9.7 (cli)
最佳答案
如果 JSON 语法有错误,
json_decode
返回 NULL
。我刚刚成功测试了一个包含 1000 个元素的数组,它运行得很好。
仔细检查您的 JSON 格式是否正确。即使是使用单引号而不是双引号、忘记将属性名称放在引号中、或者使用 32-127 范围之外的字符而没有以 UTF-8 正确编码这样的小事也可能导致这些问题。
关于PHP:json 解码限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9908421/