首頁 >後端開發 >php教程 >為什麼我的 PHP `while (!feof())` 循環不顯示整個文字文件,如何修復它?

為什麼我的 PHP `while (!feof())` 循環不顯示整個文字文件,如何修復它?

Barbara Streisand
Barbara Streisand原創
2024-12-05 20:18:12693瀏覽

Why is my PHP `while (!feof())` loop not displaying the entire text file, and how can I fix it?

PHP - 讀取和顯示文字檔案內容時循環效率低下

在PHP 中,您的目標是有效地讀取和顯示整個文字檔案。但是,您遇到了一個問題,即 while (!feof()) 迴圈沒有如預期地輸出所有內容。

問題的出現​​是由於放置了檔案結尾 (EOF) 檢查。在您的程式碼中,EOF 檢查是在實際輸出內容之前執行的。這可能會導致文件中最後一個字串僅部分列印的情況。

要修正此問題,請將 EOF 檢查放在讀取過程本身。修正後的程式碼如下:

while (($buffer = fgets($handle, 4096)) !== false) {
    $trimmed = trim($buffer);
    echo $trimmed;
}

此外,建議避免在 fopen 之前使用抑制運算子 (@),因為它可以隱藏檔案開啟過程中可能發生的錯誤。您更新後的程式碼沒有錯誤抑制:

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

現在,循環將迭代檔案直到到達 EOF,正確輸出所有內容。請記住,對於健壯的程式碼,建議處理在文件開啟或讀取過程中可能發生的任何錯誤。

以上是為什麼我的 PHP `while (!feof())` 循環不顯示整個文字文件,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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