Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/09/2009, 02:29
Greco2
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 11 meses
Puntos: 7
problema al guardar contenido en txt

hola, estoy trabajando con archivos de texto.

en un archivo tengo guardada informacion de la siguiente forma...

Código:
1:2:3:4:5
a:b:c
x:y:z
el archivo lo leo cada X tiempo para ir almacenando un dato en el ultimo lugar de la primera linea (en el ejemplo: despues del 5) y eliminar el primer registro para siempre mantener la misma cantidad (en este caso 5 registros).

para hacer eso realizo lo siguiente:

- leo el archivo con file() para crear un array con las lineas de contenido,
- transformo la primera linea en un array separandola por ':' con explode()
- recorro dicho array con un bucle FOR desde el segundo registro hasta el final (para eliminar el primer registro)
- en cada vuelta del bucle le agrego nuevamente ':' para crear el nuevo array
- terminado el bucle, al contenido le agrego el nuevo valor que ocupara el ultimo registro (por ejemplo: 8, entonces quedara asi: 2:3:4:5:8
- luego abro nuevamente el archivo en modo escritura ( fopen(archivo, w) )
- guardo los nuevos datos.

el problema es que solo me guarda el contenido del array que he estado modificando, osea la primera linea 2:3:4:5:8 pero la segunda linea y la tercera no se como poder agregarla al contenido.

aqui muestro el código que estoy usando:

Código PHP:
<?php
// Leo los datos del archivo y lo almacenamos en un array
$linea=file('archivo.txt');

// creo un array con el contenido de la primera linea separandolo por ':'
$datos=explode(':',$linea[0]);

// recorro el array desde el segundo elemento (no necesito el primero)
for( $i 1$i count($datos); $i++)
{
    
//en cada vuelta vuelvo a cargar los datos (agregue el trim() por que sin el tenia un comportamiento extraño)
    //agrego despues de cada elemento ':'
    
$nuevosDatos.=trim($datos[$i]).':';
}

// al resultado le agrego el nuevo dato que deseo incluir al final
$NuevosDatos.='8';

// abro el archivo en modo escritura y guardo los datos
$fch=fopen($file_dbg"w");
fwrite($fch$nuevosDatos);
fclose($fch);
?>
no se como podria guardar en el txt el nuevo contenido completo, osea los nuevos datos de la primera linea pero tambien la segunda y la tercera linea,

Código:
2:3:4:5:8
a:b:c
x:y:z
atento a sus sugerencias.
gracias.