Gelung PHP: Menyelesaikan Output Tidak Lengkap dengan while (!feof())
Dalam PHP, anda boleh menghadapi situasi di mana gelung menggunakan while (!feof()) tidak mengeluarkan semua kandungan yang dijangkakan. Isu ini boleh timbul kerana peletakan semakan EOF yang salah dalam gelung, seperti yang ditunjukkan oleh pengguna yang cuba membaca dan menggemakan keseluruhan fail .txt.
Kod asal:
$handle = fopen("item_sets.txt", "r"); while (!feof($handle)) { $buffer = fgets($handle, 4096); $trimmed = trim($buffer); echo $trimmed; }
Dalam kod ini, semakan untuk EOF diletakkan sebelum mengeluarkan kandungan yang dibaca. Akibatnya, gelung keluar dan berhenti membaca fail sebelum baris terakhir dicetak sepenuhnya.
Penyelesaian melibatkan memasukkan semakan EOF dalam proses membaca:
$handle = fopen("item_sets.txt", "r"); while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; }
Dengan mengalihkan EOF semak keadaan gelung while, kod memastikan gelung terus membaca dan mencetak baris sehingga penghujung fail dicapai.
Atas ialah kandungan terperinci Mengapakah Gelung PHP Saya `while (!feof())` Menghasilkan Output Tidak Lengkap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!