Masalah:
Apabila cuba membaca dan memaparkan kandungan fail teks menggunakan gelung semasa PHP (!feof()), bukan semua data sedang dikeluarkan. Rentetan terakhir dalam fail dipotong.
Jawapan:
Punca isu ini terletak pada peletakan cek EOF. Kod asal diperiksa untuk penghujung fail sebelum mengeluarkan baris terakhir. Ini mengakibatkan baris terakhir dipotong sebahagiannya.
Untuk menangani perkara ini, semakan EOF harus disepadukan dalam proses baca. Berikut ialah kod yang diperbetulkan:
<?php $line_count = 0; $handle = fopen("item_sets.txt", "r"); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; $line_count++; } } else { echo 'Unexpected error opening file'; } fclose($handle); echo PHP_EOL.PHP_EOL.PHP_EOL.'Lines read from file = ' . $line_count; ?>
Pertimbangan Tambahan:
Menggunakan kod yang diperbetulkan ini, keseluruhan kandungan fail teks akan berjaya dibaca dan dipaparkan, termasuk baris terakhir.
Atas ialah kandungan terperinci Mengapakah Gelung PHP Saya `while (!feof())` Menghasilkan Output Fail Tidak Lengkap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!