首頁 >後端開發 >php教程 >為什麼我的 PHP `while (!feof())` 不循環讀取整個檔案?

為什麼我的 PHP `while (!feof())` 不循環讀取整個檔案?

Susan Sarandon
Susan Sarandon原創
2024-12-06 13:07:12434瀏覽

Why Doesn't My PHP `while (!feof())` Loop Read the Entire File?

PHP While 循環(!feof()) 未輸出完整資料

嘗試讀取和顯示.txt 的全部內容時如果使用while 循環(!feof()) 文件,使用者可能會遇到循環未完成輸出的問題,可能會跳過或截斷文件的末尾文件。當最終讀取操作之前發生文件結束 (EOF) 測試時,就會發生此問題。

要解決此問題,建議修改循環結構以在讀取過程中執行 EOF 檢查。這是一個改進的程式碼片段:

$handle = fopen("item_sets.txt", "r");

if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        $trimmed = trim($buffer);
        echo $trimmed;
    }
} else {
    echo 'Unexpected error opening file';
}
fclose($handle);

此外,建議明確處理錯誤,而不是使用 @ 抑制錯誤。改進的程式碼片段:

$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;

使用提供的資料檔案測試此程式碼時,它會產生正確的輸出,包括檔案中的最後一個項目:

[aa_fade_revolver]weapon_revolver"          "1"

以上是為什麼我的 PHP `while (!feof())` 不循環讀取整個檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn