Membaca Fail Terlalu Besar dalam PHP
Walaupun menghadapi kesukaran membaca fail bersaiz sederhana (6 MB) menggunakan fopen PHP, tetapan lalai sepatutnya mencukupi . Adalah penting untuk menyiasat kemungkinan ralat yang kurang jelas sebelum menyelidiki penyelesaian khusus.
Pertimbangkan Masa Tamat dan Had Memori:
Periksa konfigurasi tamat masa skrip anda. Melebihi tempoh lalai (selalunya sekitar 30 saat) boleh mengakibatkan gangguan semasa I/O fail. Selain itu, sahkan penggunaan memori skrip anda untuk menolak sebarang amaran yang menunjukkan kekangan memori. Membaca fail besar ke dalam tatasusunan mungkin memerlukan peningkatan peruntukan memori.
Optimumkan dengan fgets:
Jika diagnostik sebelumnya tidak menghasilkan petunjuk, terokai kemungkinan membaca fail berturut-turut -baris menggunakan fungsi fgets. Pendekatan ini menimbulkan jejak memori yang lebih kecil kerana ia memproses data secara berperingkat:
$handle = fopen("/tmp/uploadfile.txt", "r") or die("Couldn't get handle"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); // Process buffer here.. } fclose($handle); }
Menyelesaikan Masalah Ralat Tambahan:
Mesej ralat "PHP nampaknya tidak membuang ralat, ia hanya mengembalikan palsu" boleh menandakan pelbagai isu:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Fail Terlalu Besar dalam PHP dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!