问题:
尝试读取和显示时使用 PHP while 循环 (!feof()) 读取文本文件的内容,但并非所有数据都被输出。文件中的最后一个字符串被截断。
答案:
此问题的根本原因在于 EOF 检查的位置。原始代码在输出最后一行之前检查文件末尾。这导致最后一行被部分截断。
为了解决这个问题,EOF 检查应该集成在读取过程中。这是更正后的代码:
<?php $line_count = 0; $handle = fopen("item_sets.txt", "r"); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; $line_count++; } } else { echo 'Unexpected error opening file'; } fclose($handle); echo PHP_EOL.PHP_EOL.PHP_EOL.'Lines read from file = ' . $line_count; ?>
其他注意事项:
使用此更正后的代码,将成功读取文本文件的全部内容并显示,包括最后一行。
以上是为什么我的 PHP `while (!feof())` 循环产生不完整的文件输出?的详细内容。更多信息请关注PHP中文网其他相关文章!