¿Cómo eliminar una línea del archivo con php?

Resuelto ibrahim asked hace 54 años • 10 respuestas

Tengo un archivo llamado $diry una cadena llamada $line, sé que esta cadena es una línea completa de ese archivo pero no sé su número de línea y quiero eliminarla del archivo, ¿qué debo hacer?

¿Es posible utilizar awk?

ibrahim avatar Jan 01 '70 08:01 ibrahim
Aceptado
$contents = file_get_contents($dir);
$contents = str_replace($line, '', $contents);
file_put_contents($dir, $contents);
Naveed Ahmad avatar Apr 19 '2011 07:04 Naveed Ahmad

Lea las líneas una por una y escriba todas menos la línea coincidente en otro archivo. Luego reemplace el archivo original.

Ignacio Vazquez-Abrams avatar Apr 19 '2011 07:04 Ignacio Vazquez-Abrams

esto simplemente revisará cada línea y, si no es lo que desea eliminar, se enviará a una matriz que se volverá a escribir en el archivo. mira esto

 $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);  
Thusitha Sumanadasa avatar Jun 11 '2013 07:06 Thusitha Sumanadasa