Как удалить строку из текстового файла с помощью php, не оставляя пустой строки - PullRequest
3 голосов
/ 19 сентября 2011

В настоящее время я могу удалить определенную строку из текстового файла с помощью php. Однако после удаления этой строки будет оставлена ​​пустая строка. Могу ли я удалить эту пустую строку, чтобы линии позади могли двигаться вверх? Спасибо за вашу помощь.

Ответы [ 3 ]

3 голосов
/ 11 июня 2013
     $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 голос
/ 20 декабря 2015

В самом деле? Я считаю это намного проще, всего одна строка кода:

file_put_contents($filename, str_replace($line . "\r\n", "", file_get_contents($filename)));
0 голосов
/ 19 сентября 2011

Вы можете улучшить это, установив условия для прогнозирования ошибок.

<?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);

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...