Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/10/2006, 23:03
Avatar de Erikfrancisco
Erikfrancisco
 
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 21 años, 2 meses
Puntos: 4
Cita:
Iniciado por tonibandal Ver Mensaje
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); // 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 )
   {
      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

Última edición por Erikfrancisco; 21/10/2006 a las 23:44