Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Memproses Fail JSON Besar dengan Cekap dalam PHP Tanpa Keletihan Memori?

Bagaimanakah Saya Boleh Memproses Fail JSON Besar dengan Cekap dalam PHP Tanpa Keletihan Memori?

Linda Hamilton
Lepaskan: 2024-12-16 11:38:17
asal
227 orang telah melayarinya

How Can I Efficiently Process Large JSON Files in PHP Without Memory Exhaustion?

Memproses Fail JSON Besar dengan Cekap dalam PHP

Apabila bekerja dengan fail JSON bersaiz ketara (sehingga 200MB), baca keseluruhan fail ke dalam memori sebagai tatasusunan PHP menjadi tidak praktikal. Pendekatan yang cekap ialah menggunakan teknik penghuraian JSON penstriman untuk mengelakkan penggunaan memori yang berlebihan.

JsonReader: A Streaming JSON Pull Parser untuk PHP

Pustaka pcrov/JsonReader menawarkan penstriman JSON pull parser untuk PHP 7. Tidak seperti parser berasaskan acara, JsonReader menyediakan API mudah yang membolehkan pembangun bergerak sepanjang aliran JSON dan mendapatkan semula data seperti yang diperlukan. Pendekatan ini memberikan kawalan yang lebih besar ke atas proses penghuraian dan meminimumkan penggunaan memori.

Contoh: Membaca Objek Sebagai Unit Keseluruhan

$reader = new JsonReader();
$reader->open("data.json");

$reader->read(); // Outer array
$depth = $reader->depth();
$reader->read(); // First object

while ($reader->next() && $reader->depth() > $depth) {
    print_r($reader->value()); // Process each object
}

$reader->close();
Salin selepas log masuk

Contoh: Sifat Membaca Secara Individu

$reader->json($json);

while ($reader->read()) {
    if ($reader->name() !== null) {
        echo "{$reader->name()}: {$reader->value()}\n";
    }
}

$reader->close();
Salin selepas log masuk

Contoh: Membaca Sifat dengan Nama Pendua

$json = '[{"property":"value", "property2":"value2"}, {"foo":"foo", "foo":"bar"}]';

$reader = new JsonReader();
$reader->json($json);

while ($reader->read("foo")) {
    echo "{$reader->name()}: {$reader->value()}\n";
}

$reader->close();
Salin selepas log masuk

Pilihan Tambahan

Memilih pendekatan penghuraian JSON yang optimum bergantung pada struktur fail dan keperluan pemprosesan. JsonReader juga menyokong sifat bacaan dari kedalaman tertentu atau dengan ungkapan biasa, memberikan fleksibiliti lanjut untuk struktur data yang kompleks.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memproses Fail JSON Besar dengan Cekap dalam PHP Tanpa Keletihan Memori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan