PHP的feof()文件最后多读取一行的问题解决办法

php脚本读取文本文件,并一行一行的显示,通常代码如下:

<?php
  $fn = fopen("a.txt","r");
  
  while(! feof($fn))  {
    $result = fgets($fn);
    var_dump($result);
  }

  fclose($fn);
?>

执行结果如下,通过var_dump打出数据圆形,发现最后总是多一行bool类型的变量:

PHP的feof()文件最后多读取一行的问题解决办法

这个就很讨厌了,业务数据就会多一行空值。

摘录解决办法:https://www.cnblogs.com/codefor/archive/2011/07/07/2100218.html,新代码:

<?php
$file = fopen("a.txt", "r") or exit("无法打开文件!");
    while(!feof($file))
    {
        $shuju = explode(' ',fgets($file),2);

        if (!feof($file)) {
            echo "title is : " . $shuju[0] . "\n";
            echo "content is : " . $shuju[1] . "\n";
        }
    }
    fclose($file);

?>

解决了。

京ICP备11047313号-19 彩虹岛电子书