如何使 feof 不计算文件的最后一行?
How to make it so feof doesn't count the last line of file?
所以我的代码是这样设置的
while(! feof($fn)) {
$result = fgets($fn);
// some code
}
我该怎么做才能忽略文本文件中的最后一行。
我的文本文件已设置,因此当添加内容时,它会在之后添加一个新行。这样做会由于最后一行没有输入数据而产生偏移量错误。
我已经尝试这样做了,所以它在数据之前添加了一个新行,但随后又产生了另一个错误,因为它会有一个偏移量,第一行是中断。
(如果需要更多信息,我会编辑问题)
几乎相同的代码你可以忽略最后一行:
while($result = fgets($fn)) {
if (!feof($fn)) {
// process all lines except the last one
}
}
当无法读取更多行时,fgets()
将 return false
,因此它也像一种 feof()
。
您可以在代码中添加一个额外的条件来检查读取的内容,如果这是一个空行则跳过循环中的其余代码...
$result = fgets($fn);
if ( empty(trim($result)) ) {
continue;
}
这也将处理文件中任何位置的空行。
所以我的代码是这样设置的
while(! feof($fn)) {
$result = fgets($fn);
// some code
}
我该怎么做才能忽略文本文件中的最后一行。 我的文本文件已设置,因此当添加内容时,它会在之后添加一个新行。这样做会由于最后一行没有输入数据而产生偏移量错误。
我已经尝试这样做了,所以它在数据之前添加了一个新行,但随后又产生了另一个错误,因为它会有一个偏移量,第一行是中断。 (如果需要更多信息,我会编辑问题)
几乎相同的代码你可以忽略最后一行:
while($result = fgets($fn)) {
if (!feof($fn)) {
// process all lines except the last one
}
}
当无法读取更多行时,fgets()
将 return false
,因此它也像一种 feof()
。
您可以在代码中添加一个额外的条件来检查读取的内容,如果这是一个空行则跳过循环中的其余代码...
$result = fgets($fn);
if ( empty(trim($result)) ) {
continue;
}
这也将处理文件中任何位置的空行。