首頁 >後端開發 >php教程 >為什麼我的 PHP `while (!feof())` 迴圈產生不完整的輸出?

為什麼我的 PHP `while (!feof())` 迴圈產生不完整的輸出?

Barbara Streisand
Barbara Streisand原創
2024-12-08 20:18:14830瀏覽

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

PHP 循環:使用while (!feof()) 解決不完整輸出

在PHP 中,您可能會遇到循環使用while 的情況(!feof()) 不會輸出所有預期的內容。此問題可能是由於循環中 EOF 檢查的位置不正確而引起的,如使用者嘗試讀取和回顯整個 .txt 檔案所示。

原始程式碼:

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

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

這段程式碼中,對EOF的檢查是在輸出讀取內容之前進行的。結果,在最後一行完全列印之前,循環退出並停止讀取檔案。

解決方案包括在讀取過程中合併EOF 檢查:

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

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

透過移動EOF 檢查while 循環的條件,程式碼確保循環繼續讀取和列印行,直到到達文件末尾。

以上是為什麼我的 PHP `while (!feof())` 迴圈產生不完整的輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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