2017-04-18 107 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);