Как удалить строку из текстового файла с помощью php, не выходя из пустой строки

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

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

это будет просто просматривать каждую строку, и если это не то, что вы хотите удалить, оно попадает в массив, который будет записан обратно в файл.

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

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

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

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