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

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

Barbara Streisand
Lepaskan: 2024-12-04 16:07:13
asal
478 orang telah melayarinya

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

Gelung semasa PHP (!feof()) Isu Output Tidak Lengkap

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;
?>
Salin selepas log masuk

Pertimbangan Tambahan:

  • Mengalih keluar simbol @ sebelum fopen, kerana ia menyekat mesej ralat dan dianggap amalan buruk.
  • Menambahkan pengendalian ralat untuk pembukaan fail yang tidak dijangka ralat.
  • Menambahkan aksara akhir baris (EOL) untuk memisahkan output.

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan