PHP在文件读取时丢弃空行

时间:2014-05-24 04:52:09

标签: php

我有一个看起来像这样的PHP文件:它总是在底部有空行,我不能每次都手动删除它。

1601:  01 03 04 5t5gfd# CAR_Z12
1602:  01 01 01 4gfasc# CAR_7CA
"empty line"

所以空行不说空行它只是一个空行,我怎样才能在读取文件时将其删除?

我试过了:$fp = @fopen($filename, 'r', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

没效果:

因为我正在做$array = explode("\n", fread($fp, filesize($filename))); 我得到[1603] =>

我可以检查空值,如果这是最好的方法,但我不想为已经很大的文件引入另一个循环。

3 个答案:

答案 0 :(得分:1)

试试这个

$fp = fopen($filename); 
$arr = explode("\n", fread($fp, filesize($filename)));

unset($arr[count($arr)-1]);

fwrite($fp,implode("\n", $arr));
fclose($fp);

答案 1 :(得分:1)

FILE_SKIP_EMPTY_LINES 应该做你想做的事情,其余代码似乎没问题。

也许您的文件包含来自您的操作系统的不同行结尾(例如,在Windows系统上带有\n的* nix文件,需要\r\n,反之亦然)。

启用auto_detect_line_endings可能会解决您的问题

答案 2 :(得分:0)

我记得的另一种方法是...... trim()

$str=trim("\n",$str);\\This will trim starting and ending new line character...
$str=ltrim("\n",$str);\\This will trim starting new line character...
$str=rtrim("\n",$str);\\This will trim ending new line character...

THX