私は、プロバイダからJSONファイルを取得するためにCurlリクエストを行い、返されるJSONファイルは膨大です。PHP Long Curlリクエスト
ブラウザで実行すると、応答は21Mb文字列になります。 Curlでこのリクエストを実行しているときは、時間がかかるだけでなく、Fatal error: Allowed memory size of 268435456 bytes exhausted
というエラーで終了します。
解決方法の1つは、私のコードにini_set('memory_limit', '512M');
を追加することです(私は既に256で行っていますが、まだ十分ではありません...)。 データを高速に取得する別の方法があるのだろうか?
私はそれがメモリリークではないことを知っています、それは応答が巨大であることです。 メモリの容量を増やしたくないのですが、動作することはわかっていますが、後で読むためにファイルに保存しなくても、データを高速に取得できるかどうかを知りたいと思います。
ありがとうございます!
JSONをストリーミングしてメモリを節約する方法はありますが、カールの要求をスピードアップすることはできません。あなたができる場合は、送信側でページ作成のいくつかの並べ替えを実装する必要があります。 – colburton
お返事ありがとうございます。 残念ながら私はプロバイダのサーバを制御できません:( –
レスポンスをファイルにダウンロードし、[this](https://github.com/salsify/jsonstreamingparser)のようなものでファイルを解析すると、 – GentlemanMax