我有一个看起来像这样的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] =>
我可以检查空值,如果这是最好的方法,但我不想为已经很大的文件引入另一个循环。
答案 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