如何使它不计算文件的最后一行?

时间:2019-06-11 19:16:54

标签: php file loops text filesystems

所以我将这样的代码设置为

 while(! feof($fn))  {
  $result = fgets($fn);
// some code
}

如何制作它,使其忽略文本文件中的最后一行。 我的文本文件已设置好,因此在添加内容时会在后面添加新行。这样做会导致偏移错误,因为最后一行没有输入数据。

我已经尝试过这样做,因此它在数据之前添加了新行,但是随后又产生了另一个错误,因为它将在第一行作为中断处具有偏移量。 (如果需要更多信息,我将编辑问题)

2 个答案:

答案 0 :(得分:1)

使用几乎相同的代码,您可以忽略最后一行:

while($result = fgets($fn)) {
    if (!feof($fn)) {
        // process all lines except the last one
    }
}

fgets()将在无法读取更多行时返回false,因此它也像一种feof()一样。

答案 1 :(得分:0)

您可以在代码中添加一个附加条件,以检查读取的内容,如果这是空行,则跳过循环中的其余代码...

$result = fgets($fn);
if ( empty(trim($result)) ) {
    continue;
}

这还将解决文件中任意位置的空行。