大きな配列で使用しようとしていますjson_encode
が、結果は何も返されません (はい、utf-8 であることを確認しました)。この問題の調査を開始したところ、文字列が 65536 を超えると問題が発生することがわかりました。
したがって、配列のサイズが 1245 の場合、その文字列json_encode
の長さは string(65493) になりますが、配列を 1 つだけ増やすと、文字列が 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>
犯人です...何らかの理由で、ブラウザに文字列が出力されませんが、そこにあります。
ローレンス、あなたが望むなら、それを書いていただければ、私はそれを正しいものとして受け入れます。あなたが私がこれを思いついた理由だからです。