Foros del Web » Programando para Internet » PHP »

actualizar una sola linea de un fichero txt

Estas en el tema de actualizar una sola linea de un fichero txt en el foro de PHP en Foros del Web. hola amigos tengo un problema que no se como hacer para actualizar una linea sola de un fichero .txt porque lo estoy haciendo desde flash ...
  #1 (permalink)  
Antiguo 10/01/2002, 15:13
 
Fecha de Ingreso: diciembre-2000
Mensajes: 35
Antigüedad: 23 años, 4 meses
Puntos: 1
actualizar una sola linea de un fichero txt

hola amigos tengo un problema que no se como hacer para actualizar una linea sola de un fichero .txt porque lo estoy haciendo desde flash y el php que uso me modifica actualiza todo el archivo .txt pero lo quiero modificar solo las lineas que quiera, el codigo es este:
<?php $updates_fileb3 = "msg.dat";
$fp = fopen($updates_fileb3, "r");
flock($fp,1);
$x = fread($fp, filesize ($updates_fileb3));
fclose($fp);
$x = stripslashes ($x);
$update = stripslashes ($update);
$fp = fopen($updates_fileb3, "w");
flock($fp,2);
$fw = fwrite($fp, $update);
fclose($fp);
$x=$update;
echo $x;
?>
  #2 (permalink)  
Antiguo 10/01/2002, 21:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: actualizar una sola linea de un fichero txt

Un fichero TXT .. o simplemte un fichero que no sea una base de datos (lease, Mysql etc..) se acede a el de forma secuencial .. es decir, como mucho podemos añadir al final del archivo mas datos pero no asi una linea o registro de este "txt".

El metodo que se usa (si hay mas no los conozco...) es:

1.- lees el fichereo txt y lo almacenas en un Array (todo), indicando \n como separador de registros del Array (\n es el fin de linea)
2.- Utilizas las funciones de Array para modificar una posicion de la misma.
3.- Grabas todo el Array (en este momento ya estara modificado la linea que indicastes).

Y el codigo .. seria algo asi:

<?php

# El nombre de tu .txt
$txt = "el_txt.txt"

# Leemos el ".txt"
$fichero = fopen($txt, "r");
$array_txt = fread($fichero, filesize($txt));
fclose($fichero);
$lineas = explode("\n", $array_txt);
$total_lineas = count ($lineas);

# Aqui iria una rutina en la que compararias el identificador,
# linea completa, u otro argumento con el leido en el Array.

#modificamos la linea "x" que deseas modificar (numero de 0 a $total_lineas).
$lineas[x] = "La modificacion"

# Grabamos el Array modificado.
$i = 0;
$fichero = fopen($txt, "w");
while ($i <= $total_lineas){
fwrite ($fichero, $lineas[$i]."\n");
$i++;
}
fclose($fichero);
?>

Un saludo, espero que te sirva.
  #3 (permalink)  
Antiguo 11/01/2002, 13:53
 
Fecha de Ingreso: diciembre-2000
Mensajes: 35
Antigüedad: 23 años, 4 meses
Puntos: 1
Re: actualizar una sola linea de un fichero txt

muchisimas gracias, lo voy a probar la verdad que no encontraba por ningun lado una ayuda.

Ale
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 14:00.