Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah Gelung PHP Saya `while (!feof())` Menghasilkan Output Tidak Lengkap?

Mengapakah Gelung PHP Saya `while (!feof())` Menghasilkan Output Tidak Lengkap?

Barbara Streisand
Barbara Streisandasal
2024-12-08 20:18:14824semak imbas

Why Does My PHP `while (!feof())` Loop Produce Incomplete Output?

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!

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