Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在读取文件时删除跳过空行_Php_File - Fatal编程技术网

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

Php 如何在读取文件时删除跳过空行,php,file,Php,File,阅读官方文件,如果我想跳过txt中的空行,我只需要用file_skip_empty_line调用函数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 DOCUM

阅读官方文件,如果我想跳过txt中的空行,我只需要用file_skip_empty_line调用函数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:它在
bbb
ccc
之间添加了空行,最后一行。为什么?

文件跳过空行
实际上只跳过空行。如果在其中有空格或制表符或其他空白,则不认为它是空行。

在检查之前,它不会进行
修剪
,它会查看
$line==“\n”
,然后才将其视为空行


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

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

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

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

嗯。那么如何删除空白呢<代码>$fileArray=array_filter($fileArray,“trim”)?差不多了。请参见编辑。但这将返回所有被修剪的线条,不仅仅是为了测试。嗯,它不起作用!如果我尝试使用for查看结果,当我删除该值时,我会得到一个通知:未定义的偏移量:使用
print\r
查看结果,而不是
for
循环。是的,这类似于trim,但事实上,当我浏览数组时,我会得到一个通知:在空行之前的位置未定义…使用
foreach()对数组进行迭代
而不是
for()
循环,您应该没事了。(增加了额外的一行,它应该允许一个
来让
正常工作是的,我错过了array\u values函数!很好!谢谢。为什么你在trim时预定位为空?
empty()
将根据字符串(行)是否为空返回真/假。
trim()
将只返回一个经过修剪的字符串,因此对于“它将返回”我们还有一条空线