2011-09-19 123 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))); 
相关问题