2017-04-18 126 views
0

恐怕这个问题不会太受欢迎,可能会被低估,但我已经在这个网站(和其他人)搜索和搜索,我找不到一个办法。从txt文件中删除空白行保留回车

我有,比如说一个文本文件,内容如下所示:

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

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

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

+0

替换行中的任意2个或更多换行符并设置一个只 – nogad

+0

做这个答案的帮助? http://stackoverflow.com/questions/6360566/replace-multiple-newline-tab-space –

+0

谢谢你们,我要去尝试;) – b1919676

回答

0

有必然是用于替换重复,而是简单地读入一个数组并跳过空行:

$lines = file("file.txt", FILE_SKIP_EMPTY_LINES): 

然后循环数组echo线或implode()取回成一个字符串。

+0

感谢哥们,我会尝试它。 – b1919676

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