首页 > 后端开发 > php教程 > 为什么我的 PHP `while (!feof())` 循环产生不完整的输出?

为什么我的 PHP `while (!feof())` 循环产生不完整的输出?

Barbara Streisand
发布: 2024-12-08 20:18:14
原创
822 人浏览过

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

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