問題:
嘗試讀取和顯示時使用PHP while 迴圈(!feof()) 讀取文字檔的內容,但並非所有資料都會輸出。文件中的最後一個字串被截斷。
答案:
此問題的根本原因在於 EOF 檢查的位置。原始程式碼在輸出最後一行之前檢查文件末尾。這導致最後一行被部分截斷。
為了解決這個問題,EOF 檢查應該整合在讀取過程中。這是修正後的程式碼:
<?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; ?>
其他注意事項:
使用此修正後的程式碼,將成功讀取文字檔案的全部內容並顯示,包括最後一行。
以上是為什麼我的 PHP `while (!feof())` 迴圈產生不完整的檔案輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!