Memproses Fail JSON Besar dalam PHP
Apabila mengendalikan fail JSON yang melebihi had memori, adalah penting untuk merangka strategi yang meminimumkan penggunaan memori semasa menghurai dan memproses. Perbincangan ini meneroka kaedah yang cekap untuk mengendalikan fail JSON yang besar tanpa memuatkan keseluruhan kandungan ke dalam memori.
Pull Parsing Approach
Meninggalkan pendekatan "slurp and parse" biasa, PHP kini menawarkan penyelesaian yang menjanjikan: penghurai tarik JSON penstriman yang dipanggil JsonReader. Diinspirasikan oleh API XMLReader, JsonReader membenarkan pengguna mengawal proses penghuraian dan mendapatkan semula data atas permintaan.
Contoh 1: Membaca Objek Secara Keseluruhan
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();
Contoh 2: Membaca Individu Elemen
while ($reader->read()) { if ($reader->name() !== null) { echo "$name: {$reader->value()}\n"; } }
Contoh 3: Membaca Pendua dan Sifat Tertentu
$reader = new pcrov\JsonReader\JsonReader(); $reader->json($json); while ($reader->read("foo")) { echo "{$reader->name()}: {$reader->value()}\n"; }
Dengan menggunakan keupayaan pull-parsing JsonReader, pembangun PHP yang besar boleh memproses dengan cekap fail JSON, mengelakkan keletihan memori dan memaksimumkan prestasi.
Atas ialah kandungan terperinci Bagaimanakah PHP Boleh Memproses Fail JSON Besar Dengan Cekap Tanpa Keletihan Memori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!