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中文網其他相關文章!