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