首页 >后端开发 >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