Cita:
Iniciado por tonibandal encontrar una palabra o frase en un fichero, y al encontrarla eliminar esa linea
Aquí les dejo un ejemplo con sus respectivos comentarios para que sepan que es lo que hace el código (esto suponiendo que tienen varias lineas en su .txt):
Código PHP:
<?php
if ( isset ( $_POST['submit'] ) && !empty ( $_POST['buscar'] ) )
{
$ruta = "prueba.txt"; // ruta hacia el archivo
$lee = file( $ruta ); // leemos el archivo
$p_buscar = $_POST['buscar']; // palabra a buscar y eliminar
$guardar = ""; // nos servirá para imprimir en el archivo los datos con la busqueda ya hecha
$contador = 0; // nos ayudará a saber si se modifico alguna fila
foreach ( $lee as $linea)
{
$palabra = explode ( " ", $linea ); // separamos las palabras
$fila = ""; // nos ayúdara a guardar los datos de cada fila
foreach ( $palabra as $recorre )
{
if ( strstr ( $recorre, $p_buscar ) ) // si la palabra contiene la palabra que queremos eliminar
{
$contador += 1; // indicamos cuantas coincidencias hubo, aumentando uno por fila
$fila = ""; // no guardamos nada de la fila
continue 2; // seguimos con la otra fila
}
else
{
$fila .= $recorre." "; // agregamos la palabra a la fila
}
}
$guardar .= $fila; // agregamos los resultados a la fila
$inicio = strlen( $guardar ) -1;
$guardar = substr_replace ( $guardar, '', $inicio, 1 ); // quitamos el último espacio
}
$fp = fopen ( $ruta, 'w' ); // abrimos el fichero para escritura
fwrite ( $fp, $guardar ); // escribimos los resultados
fclose($fp); // cerramos el fichero
if ( $contador > 0 )
{
echo "La eliminación se realizó con éxito<br/>";
echo "Se modificaron $contador filas";
}
else
{
echo "No se encontro ninguna coincidencia. El archivo quedo intacto.";
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
Teclee la palabra que quiere buscar para que se elimine la fila: <input type="text" name="buscar">
<br/><input type="submit" name="submit" value="Buscar">
</form>
Espero sea lo que necesitaban. Sólo hay que cambiar la variable $ruta. Haaaaaaaa, casi se me olvidava, ¡Bienvenido al foro tonibandal!. Suerte