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

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

Barbara Streisand
发布: 2024-12-05 20:18:12
原创
698 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板