2017-04-16 104 views
1

我有一個原來有一個空Righa開頭和兩個空行翼端文件空行產生了我一個錯誤刪除文本文件

<?php 
$file = "https://example.com/text/file.txt"; 

$fr = fopen($file, 'r'); 

$contenuto = ""; 
while (!feof($fr)) { 

    $riga = fgets($fr); 

    $inizio = strpos($riga, "Capitolo"); 

    $nuova_riga = substr($riga, $inizio); 

    $contenuto .= $nuova_riga . ""; 
} 
fclose($fr); 
$fr = fopen("file.txt", 'w'); 
fwrite($fr, $contenuto); 
fclose($fr); 

注意:未定義抵消: 注意:未定義指數:

如果手動刪除空行顯然我沒有錯,所以我應該打開一個只寫取消空白行,然後用頁面上的其他指令繼續在文件。我能怎麼做?謝謝

+0

哪裏是你的代碼的兄弟? –

回答

3

沒有完全理解你的問題。也許是這樣?

str_replace("\n\n", "\n", $file) 
0

你可以這樣使用它。

<?php 
ini_set('display_errors', 1); 
$resultant=array(); 
$lines=file("/path/to/your/test.txt");//retrieving lines of the file. 

foreach($lines as $value) 
{ 
    if($value!="\n") 
    { 
     $resultant[]=$value; 
    } 
} 

$string=implode("", $resultant);//combining array into string with null 
file_put_contents("/path/wher/you/want/to/save.txt", $string); 
+0

這樣不會刪除空行,但添加行和其他 – Michael

+0

@邁克爾我已經更新了我的文章,你可以檢查它會正常工作之間的空行。我已經測試過它。 –

+0

它不工作,所以在一開始的空行,並最終留在記事本++展望看到行包含CR和LF可能消除這些 – Michael

0

試試這個支持標誌的file function

file_put_contents('file.txt',implode('', file('https://example.com/text/file.txt', FILE_SKIP_EMPTY_LINES)));