如何在读取文件时删除跳过空行

时间:2011-04-23 22:15:24

标签: php file

阅读官方manual,如果我想在txt中跳过空行,我只需要用FILE_SKIP_EMPTY_LINES调用函数文件();事实上我写道:

$fileArray=file($uploadDirectory.$tracklistFile_name, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

但它也读了空行。所以,在这样的文字中:

// START OF THE DOCUMENT
aaa
bbb

ccc
ddd

// END OF THE DOCUMENT

实际上sizeof($fileArray)为6:它会在bbbccc之间添加空行,并在最后一行之间添加空行。为什么呢?

2 个答案:

答案 0 :(得分:6)

FILE_SKIP_EMPTY_LINES实际上只跳过空行。如果您有空格或制表符或其他空格,file()将不会将其视为空行。

在检查之前它没有trim,它看起来是$line=="\n",只是认为它是一个空行。


作为替代方案,您可以使用:

$file = array_filter(array_map("trim", file("text.txt")), "strlen");

答案 1 :(得分:6)

有很多方法可以清理阵列,但我喜欢这个:

$fileArray = array_values(array_filter($fileArray, "trim"));