我担心这个问题不会太受欢迎,可能会被低估,但我在这个网站(以及其他网站)进行搜索和搜索,我找不到解决方案。
我有一个文本文件,例如,这个内容:
我需要删除空行,但保留现有的回车符,如下所示:
我正在使用的代码:
if ($file = fopen("file.txt", "r")) {
while(!feof($file)) {
$line = fgets($file);
echo str_replace("\r\n","",$line)
}
fclose($file);
}
如上所述,我尝试使用str_replace,preg_replace和\ r \ n或\ n \ n等函数作为要替换的字符,但是所有这些都得到了这个结果:
根据需要删除空行,但也删除了回车符,这在我的情况下是不允许的。
所以我想知道是否有人可以建议一种方法来实现我的目标:)谢谢。
答案 0 :(得分:0)
替换必然会有重复,但只需读入数组并跳过空行:
$lines = file("file.txt", FILE_SKIP_EMPTY_LINES):
然后将数组循环到echo
行或implode()
以将其恢复为字符串。
答案 1 :(得分:-1)
@Abracadaver @nogad @GCRdev
我正在尝试你的方法,但对我不起作用。我终于找到了一种方法(感谢https://stackoverflow.com/a/20719126),如果对某人有用的话,我会把它放在这里:
$file = fopen("file.txt","r");
while($line = fgets($file)){
$tempData = nl2br($line);
$tempData = explode("<br />",$tempData);
foreach ($tempData as $val) {
if(trim($val) != '')
{
echo $val."<br />";
}
}
}
fclose($file);