PHP での大きな JSON ファイルの処理
メモリ制限を超える JSON ファイルを処理する場合、メモリ使用量を最小限に抑える戦略を考案することが重要になります。解析および処理中。この説明では、コンテンツ全体をメモリにロードせずに大きな JSON ファイルを処理する効率的な方法について説明します。
プル解析アプローチ
典型的な「丸めて解析」アプローチを放棄する、PHP現在、JsonReader と呼ばれるストリーミング JSON プル パーサーという有望なソリューションを提供しています。 XMLReader の API からインスピレーションを得た JsonReader を使用すると、ユーザーは解析プロセスを制御し、オンデマンドでデータを取得できます。
例 1: オブジェクト全体を読み取る
use pcrov\JsonReader\JsonReader; $reader = new JsonReader(); $reader->open("data.json"); $reader->read(); // Outer array $depth = $reader->depth(); // Track depth to detect when the array ends $reader->read(); // Move to the first object while ($reader->next() && $reader->depth() > $depth) { print_r($reader->value()); // Process each object } $reader->close();
例 2: 個人の読み取り要素
while ($reader->read()) { if ($reader->name() !== null) { echo "$name: {$reader->value()}\n"; } }
例 3: 重複と特定のプロパティの読み取り
$reader = new pcrov\JsonReader\JsonReader(); $reader->json($json); while ($reader->read("foo")) { echo "{$reader->name()}: {$reader->value()}\n"; }
JsonReader のプル解析機能を利用することで、PHP 開発者は大量のデータを効率的に処理できます。 JSON ファイル。メモリの枯渇を回避し、パフォーマンスを最大化します。
以上がPHP はどのようにしてメモリを使い果たさずに大きな JSON ファイルを効率的に処理できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。