Foros del Web » Programando para Internet » PHP »

Añadir datos al principio del fichero

Estas en el tema de Añadir datos al principio del fichero en el foro de PHP en Foros del Web. Buenas, quisiera insertar datos en un fichero, pero no al final como con el modo "a", sino al principio. He probado de varias maneras y ...
  #1 (permalink)  
Antiguo 17/06/2002, 19:31
Avatar de Yagorat  
Fecha de Ingreso: marzo-2002
Ubicación: Madrid
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Añadir datos al principio del fichero

Buenas, quisiera insertar datos en un fichero, pero no al final como con el modo "a", sino al principio. He probado de varias maneras y la única manera de hacerlo es, primero leyendo el contenido del fichero en una variable, después juntando el dato que yo quiero introducir y el contenido del fichero, y despues abriendo en formato escritura "w" y guardando la suma.

//Ejemplo
<?
$registro = "Datos que quiero poner al principio";
$filename = "prueba.txt";
$file = fopen($filename,"r+");
$contenido = fread ($file, filesize ($filename));
$cerrar = fclose($file);

// De esta manera pongo primero los datos nuevos delante.
$cadena = $registro.$contenido;

// Abró en modo "w" para que borre lo anterior
$file = fopen($filename,"w+");
$fp = fwrite($file,$cadena);
$cerrar = fclose($file);
?>

De esta manera lo consigo, pero he de abrir dos veces el fichero. He probado conbinando "aw", "wa", y demás posiblidades y nada.

Alguíen sabe algún metodo mejor. :roto:

------------------------
Solo se que no se nada.
Yagorat - Webmaster sin web
  #2 (permalink)  
Antiguo 17/06/2002, 20:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: Añadir datos al principio del fichero

Que yo sepa ese es el metodo para trabajar con ficheros de acceso secuencial .. tal como tu lo describes.

Para solventar esos problemas .. tendrias que recurrir a un motor de base de datos de acceso aleatorio .. ejemplos son: Mysql .. PostgreSQL .. etc ..

Un saludo,
  #3 (permalink)  
Antiguo 18/06/2002, 14:43
 
Fecha de Ingreso: agosto-2001
Mensajes: 315
Antigüedad: 16 años, 4 meses
Puntos: 1
Re: Añadir datos al principio del fichero

Hola
No hace falta abrirlo dos veces
aca te mando el codigo
fijate la funcion rewind()
lleva el puntero al comienzo del archivo.

<?
$dato="cadena ira al principio del archivo";
$arch="prueba.txt";
$fp=fopen($arch,"r+");
$anterior=fread($fp,filesize($arch));
$todo=$dato.$anterior;
rewind($fp);
fwrite($fp,$todo);
fclose($fp);
?>

Besos Romina
  #4 (permalink)  
Antiguo 18/06/2002, 16:45
Avatar de Yagorat  
Fecha de Ingreso: marzo-2002
Ubicación: Madrid
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Re: Añadir datos al principio del fichero

Muchas gracias a los dos, había descartado varias veces el modo "r" porque siempre me dejaba lo que había y despues añadía el dato nuevo junto con todo otra vez.

Esto era para el sistema de noticias que ^_Clotis_^ está haciendo para aprender php.

Un saludo a todos

------------------------
Solo se que no se nada.
Yagorat - Webmaster sin web
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 17:01.