读取文件时删除不可见字符的行



阅读官方手册,如果我想跳过文本文件中的空行,我只需要用FILE_SKIP_EMPTY_LINES调用函数file()。我写:

$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之间的空行与最后一行相加。为什么?

FILE_SKIP_EMPTY_LINES实际上只跳过空行。如果里面有空格、制表符或其他空白,file()将不会认为它是空行。

它在检查之前不做trim,它检查$line=="n",然后才认为它是空行。


也可以使用:

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

清理数组的方法有很多但我喜欢这个:

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

相关内容

  • 没有找到相关文章

最新更新