2011-09-19 95 views
3

目前我能夠使用php從文本文件中刪除特定行。但是,刪除該行後,會留下空行。 無論如何,我可以刪除空行,以便後面的行可以向上移動? 謝謝你的幫助。如何使用php從文本文件中刪除一行而不留空行

+0

你能告訴我們你正在使用的方法,所以我們可以有一個起點來改善請? – jsnfwlr

+0

你使用'fopen()'嗎?知道這可能有幫助... – alex

回答

0

您可以通過設置條件來預測錯誤來改善此情況。

<?PHP 

$file = "a.txt"; 
$line = 3-1; 

$array = file($file); 
unset($array[$line]); 
$fp = fopen($file, 'w+'); 

foreach($array as $line) 
    fwrite($fp,$line); 

fclose($fp); 

?> 
3
 $DELETE = "the_line_you_want_to_delete"; 

    $data = file("./foo.txt"); 

    $out = array(); 

    foreach($data as $line) { 
     if(trim($line) != $DELETE) { 
      $out[] = $line; 
     } 
    } 

    $fp = fopen("./foo.txt", "w+"); 
    flock($fp, LOCK_EX); 
    foreach($out as $line) { 
     fwrite($fp, $line); 
    } 
    flock($fp, LOCK_UN); 
    fclose($fp); 

這將只是看在每一行,如果它不是你想刪除的內容,它就會被推到,將獲得回寫到文件的數組。

1

真的嗎?我覺得這個簡單,只有一行代碼:

file_put_contents($filename, str_replace($line . "\r\n", "", file_get_contents($filename))); 
相關問題