如何使用PHP从文本文件中删除一行而不留空行

时间:2011-09-19 04:21:33

标签: php text-files

目前我可以使用php从文本文件中删除特定行。但是,删除该行后,将留下一个空行。 反正我有没有删除那条空行,以便后面的行可以向上移动? 谢谢你的帮助。

3 个答案:

答案 0 :(得分: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 :(得分:1)

真的?我发现这个更容易,只有一行代码:

file_put_contents($filename, str_replace($line . "\r\n", "", file_get_contents($filename)));

答案 2 :(得分: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);

?>