Foros del Web » Programando para Internet » PHP »

Archivo

Estas en el tema de Archivo en el foro de PHP en Foros del Web. Buenas he estado tratando de copiar un archivo pero sin una linea y no me resulta, hasta ahora lo mas sensato que he logrado es ...
  #1 (permalink)  
Antiguo 29/05/2007, 12:55
 
Fecha de Ingreso: mayo-2007
Mensajes: 2
Antigüedad: 17 años
Puntos: 0
Exclamación Archivo

Buenas
he estado tratando de copiar un archivo pero sin una linea y no me resulta, hasta ahora lo mas sensato que he logrado es esto

Código PHP:
$filename             "file1.txt";
$filename2             "file2.sql";

$archivofopen($filename "r");
$archivo2fopen($filename2 "w");
//if ($archivo) {
while (!feof($archivo)) {
    if(
fgets($archivo)!='PEQUENHA LANGOSTA')
        
fwrite($archivo2,fgets($archivo));
}
fclose ($archivo2); 
fclose ($archivo); 
'PEQUENHA LANGOSTA' es la linea que no quiero que se copie de file1.txt a file2.sql.

ya no se que hacer, le he dado vueltas y vueltas
ojala me puedan ayudar
gracias

saludos
  #2 (permalink)  
Antiguo 31/05/2007, 12:57
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: Archivo

Prueba utilizar la función file() en lugar de fopen para leer el archivo, luego crea un array con las palabras o cadenas que no quieres que se copien para que puedas añadir más de una palabra o cadena, enseguida si la línea no es igual a las palabras o cadenas que se encuentran en tu array de palabras que no quieres copiar concatena esa línea a una variable para que hasta el último guardes esa variable en el archivo a copiar. Para que me entiendas mejor te dejo este ejemplo:
Código PHP:
<?php
$filename 
file"file1.txt" ); // Leemos el archivo y lo almacenamos en forma de array
$filename2 "file2.sql"// Nombre del archivo al que queremos copiarle la informacion

$palabras = array( 'PEQUENHA LANGOSTA''PEPITAS''COSTAL' ); // Array con las palabras o cadenas que no quieres que se copien
$copia ''// En esta variable se almacenarán las líneas que necesitamos

foreach( $filename as $linea )
{
   foreach( 
$palabras as $no_copiar )
   {  
// Recorremos el array de palabras que no queremos que se copien y si encontramos una línea igual a 1 elemento de este array no la copiamos
      
if( $linea == $no_copiar || $linea == $no_copiar."\r\n" // El \r\n es por si la línea contiene un salto de línea
         
continue 2;
   }

   
$copia .= $linea// Si llegamos hasta aquí es que sí podemos copiar esta línea a nuestro archivo y la agregamos a la variable para despues grabar esta en el archivo
}

$f = @ fopen$filename2'w' ); // Abrimos el archivo para su escritura
fwrite$f$copia ); // Escribimos las líneas permitidas
fclose$f ); // Cerramos el archivo
?>
Espero sea lo que necesitabas o por lo menos te des una idea. Suerte
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:13.