从txt文件中删除空白行,保持回车

时间:2017-04-18 21:21:34

标签: php blank-line

我担心这个问题不会太受欢迎,可能会被低估,但我在这个网站(以及其他网站)进行搜索和搜索,我找不到解决方案。

我有一个文本文件,例如,这个内容:

enter image description here

我需要删除空行,但保留现有的回车符,如下所示:

enter image description here

我正在使用的代码:

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等函数作为要替换的字符,但是所有这些都得到了这个结果:

enter image description here

根据需要删除空行,但也删除了回车符,这在我的情况下是不允许的。

所以我想知道是否有人可以建议一种方法来实现我的目标:)谢谢。

2 个答案:

答案 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);