首页 >后端开发 >php教程 >为什么我的 PHP `while (!feof())` 循环不显示整个文本文件,如何修复它?

为什么我的 PHP `while (!feof())` 循环不显示整个文本文件,如何修复它?

Barbara Streisand
Barbara Streisand原创
2024-12-05 20:18:12703浏览

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