> Faqs > Cambiar una linea de un txt

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 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:

<span class="codigo"> $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);
}

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

Me podeis echar una mano?

Respuestas

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: <span class="codigo"> /*1 obtienes todo el contenido*/ while (!feof($dataFile)) { $buffer[] = fgets($dataFile, 4096); } /*Sustituyes la linea N */ $buffer[N] = "Otra cosa"; </span>

Pablo Rodriguez