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

mar*_*zzz 2 php file

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

$fileArray=file($uploadDirectory.$tracklistFile_name, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
Run Code Online (Sandbox Code Playgroud)

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

// START OF THE DOCUMENT
aaa
bbb

ccc
ddd

// END OF THE DOCUMENT
Run Code Online (Sandbox Code Playgroud)

实际上sizeof($fileArray)是6:它在bbb和之间添加空行ccc,最后一行.为什么?

mar*_*rio 6

FILE_SKIP_EMPTY_LINES真的只是跳过空行.如果您有空格或制表符或其他空格,file()则不会将其视为空行.

trim在检查之前不会执行,它会查看是否$line=="\n"且仅将其视为空行.


作为替代,您可以使用:

$file = array_filter(array_map("trim", file("text.txt")), "strlen");
Run Code Online (Sandbox Code Playgroud)


Jam*_*s C 6

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

$fileArray = array_values(array_filter($fileArray, "trim"));
Run Code Online (Sandbox Code Playgroud)