Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Membaca Fail Besar Baris demi Baris untuk Mengelakkan Keletihan Memori?

Bagaimanakah Saya Boleh Membaca Fail Besar Baris demi Baris untuk Mengelakkan Keletihan Memori?

Susan Sarandon
Susan Sarandonasal
2025-01-03 12:21:09904semak imbas

How Can I Read Large Files Line by Line to Avoid Memory Exhaustion?

Membaca Fail Besar Baris demi Baris tanpa Keletihan Memori

Apabila berurusan dengan fail besar yang melebihi kapasiti memori, adalah penting untuk mengelak daripada memuatkannya sepenuhnya ke dalam ingatan, kerana ini boleh menyebabkan ralat di luar ingatan. Satu pendekatan berkesan untuk memproses fail sedemikian dengan cekap ialah membacanya baris demi baris.

Untuk mencapainya, seseorang boleh memanfaatkan fungsi fgets(). Fungsi ini mendapatkan semula satu baris daripada aliran fail dan mengembalikannya sebagai rentetan. Dengan menggunakan gelung yang memanggil fgets() berulang kali, anda boleh mengulangi keseluruhan fail, memproses setiap baris secara individu:

$handle = fopen("inputfile.txt", "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        // Perform necessary actions on the retrieved line.
    }

    fclose($handle);
}

Dalam coretan kod ini, percubaan dibuat untuk membuka "inputfile.txt" fail dalam mod baca sahaja. Jika fail boleh dibuka dengan jayanya, gelung dimulakan untuk membaca fail baris demi baris. Pembolehubah baris menyimpan kandungan setiap baris yang dibaca. Gelung ini berterusan sehingga tiada lagi baris untuk dibaca, sampai ke penghujung fail.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Fail Besar Baris demi Baris untuk Mengelakkan Keletihan Memori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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