Cambiar una linea de un txt

Hola, Estoy buscando la forma de canviar el valor de una linea en un txt sin tener que regenerar el txt por completo. Seria como hacer un...

La FAQ Cambiar una linea de un txt tiene

Pertenece a la categoría:
Pregunta
Hola,


Estoy buscando la forma de canviar el valor de una linea en un txt sin tener que regenerar el txt por completo.
Seria como hacer un update en sql.. canvias la linea en concreto seguna la "id" por ejemplo.



Supongamos que el contenido en el txt es:


lalalala res nose lala


cortaraki iee ueue llla


232323 ieieie ooo aaa



..y quiero que la segunda linea "cortaraki" canvie el contenido. Entonces mi php es:






$filename = "prueba.txt";

$dataFile = fopen( $filename, "r+" );



if ( $dataFile )

{

while (!feof($dataFile))

{

$buffer = fgets($dataFile, 4096);



$iezoo = split(' ',$buffer);



if ($iezoo[1] == "cortaraki"){

fwrite($dataFile, "otracosa uno dos tres");

}

else{

//nada...

}

}

fclose($dataFile);

}





Pero solo consigo crear una 4a linea, no me modifica esa en question.



Me podeis echar una mano?
Respuesta de Pablo Rodriguez
Para empezar, el uso de archivos es muy tedioso y te quita mucho tiempo.

Te sugiero uses una tabla en base de datos.

Por otro lado si decides continuar con el uso de archivos hechale un ojo a estas dos funciones:

file_get_contents: para obtener todo el contenido del archivo. referencia: http://mx.php.net/function.file-get-contents

str_replace: para sustituir la la cadena que tu quieras. referencia: http://mx.php.net/str_replace


Otra solución alterna sería:


/*1 obtienes todo el contenido*/
while (!feof($dataFile))
{
$buffer[] = fgets($dataFile, 4096);
}
/*Sustituyes la linea N */

$buffer[N] = "Otra cosa";

Volver al árbol de categoríasVolver al árbol de categorías

Comentarios

chervox

07/8/2009
fgetcsv / fputcsv
Otra opción es usar el estupendo formato csv para el archivo de texto y en caso de que PHP sea >=5 hacer una combinacion de fputcsv y fgetcsv.

En http://ar2.php.net/manual/en/function.fputcsv.php hay varios ejemplos de uso (no voy a ser redundante copiando y pegando)
FAQ relacionadas

Para ver más FAQ relacionadas accede a las categorías:

Volver al árbol de categoríasVolver al árbol de categorías