Foros del Web » Programando para Internet » PHP »

Abrir fichero en modo escritura

Estas en el tema de Abrir fichero en modo escritura en el foro de PHP en Foros del Web. Buenas, me gustaria podre abrir un fichero de tal forma que los cambios me permita guardarlos en el mismo fichero. $fd = fopen($texto, "r"); $contenido ...
  #1 (permalink)  
Antiguo 02/06/2004, 05:59
Avatar de juavalga  
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 143
Antigüedad: 20 años
Puntos: 0
Exclamación Abrir fichero en modo escritura

Buenas, me gustaria podre abrir un fichero de tal forma que los cambios me permita guardarlos en el mismo fichero.

$fd = fopen($texto, "r");
$contenido = fread($fd,$tam);
echo $contenido;
fclose($fd);

De esta forma me lo abre en modo lectura perfectamente, pero si cambio la "r" por "w" me aparece en blanco.

Si utilizo en vez de fread, fwrite

$fd = fopen($texto, "w");
fwrite($fd,$texto);
echo $fd;
fclose($fd);

Me aparece el mensaje "Resource id #5".

Gracias.
  #2 (permalink)  
Antiguo 02/06/2004, 06:02
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 9 meses
Puntos: 0
Esto te será útil

'r' - Abre para sólo lectura; sitúa el apuntador del fichero al comienzo del mismo.

'r+' - Abre para lectura y escritura; situa el apuntador del fichero al comienzo del fichero.

'w' - Abre para sólo escritura; sitúa el apuntador del fichero al comienzo del fichero y trunca el fichero con longitud cero. Si el fichero no existe, trata de crearlo.

'w+' - Abre el fichero para lectura y escritura; sitúa el apuntador del fichero al comienzo del fichero y trunca el fichero con longitud cero. Si el fichero no existe, trata de crearlo.

'a' - Abre sólo para escribir (añadir); sitúa el apuntador del fichero al final del mismo. Si el fichero no existe, trata de crearlo.

'a+' - Abre para lectura y escritura (añadiendo); sitúa el apuntador del fichero al final del mismo. Si el fichero no existe, trata de crearlo.
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #3 (permalink)  
Antiguo 02/06/2004, 07:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Esto también te será útil:

www.php.net/fopen

Un saludo,
  #4 (permalink)  
Antiguo 03/06/2004, 01:42
Avatar de juavalga  
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 143
Antigüedad: 20 años
Puntos: 0
Buenas, todo esto ya lo habia visto. Con las opicones "r" y "r+" el docuemento solo me da la opcion de "Guardar Como". Mientras que si utilizo cualquiera del resto de opciones me aparece el documento en blanco.

Estoy abierto a cualquier tipo de sugerencias.

Gracias de nuevo
  #5 (permalink)  
Antiguo 03/06/2004, 01:50
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 5 meses
Puntos: 1
Amigo, trata de leer con atención lo que se te ha dicho. Enea ya te dió la solución, si abres asi:

Código PHP:
$archivo fopen("archivo.txt","a+"); 
ahora la variable $archivo contiene el manejador (resource) de archivo.txt, y este manejador está "autorizado" para leer o escribir, y el puntero se encuentra al final, es decir, listo para meter mas información...

si le doy

Código PHP:
echo $archivo
por supuesto que no me va a imprimir la información, si hubieras leido la documentación del link que te envio cluster sabrías que fopen() no te devuelve la información "tangible" del fichero, únicamente te devuelve un manejador de archivo para poder manipularlo.

lee lo antes escrito, si te quedan dudas, con gusto trataremos de resolverlas...


un saludo
  #6 (permalink)  
Antiguo 03/06/2004, 03:17
Avatar de juavalga  
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 143
Antigüedad: 20 años
Puntos: 0
Entonces como puedo abrir dicho manejador para añadir o modificar la informacion del fichero.
¿Cuales son los comandos para utilizar dichos manejadores?
Os agradezco mucho todo
  #7 (permalink)  
Antiguo 03/06/2004, 07:37
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 11 meses
Puntos: 0
Me uno al problema

Con vuestro permiso, me uno al tema. Gracias.

Si haces

<?
$archivo = fopen("tuarchivo.txt","a+");
?>

No te sale nada.

Para comprobar que hay algo en esta página, hago
<?
$archivo = fopen("tuarchivo.txt","a+");
echo "$archivo";
?>

Y ahora aparece en la página esto:

Resource id #3

Es decir, el fichero se ha ejecutado y da un resultado, tal como dice sim82.

Pero la gracia del asunto es saber cómo seguir.

Voy a leer el enlace que pone Cluster y si me aclaro os lo cuento.

De todos modos, si sabéis cómo tratar el Resource id #3 una ayuda no vendría nada mal.

Cordiales saludos a todos.
  #8 (permalink)  
Antiguo 03/06/2004, 08:11
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 11 meses
Puntos: 0
Hola de nuevo.

Si añado

include 'tuarchivo.txt';

visualizo el contenido, pero sólo puedo leer. Ni modificar ni por supuesto guardar los cambios.

¿Cómo he de seguir?. ¿Tiene algo que ver que esté haciendo las pruebas en local y me falten los permisos.

Gracias por vuestra ayuda.
  #9 (permalink)  
Antiguo 03/06/2004, 08:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Un "include" sólo llama a tu código y lo presentas en HTML (en tu navegador ..)

Si quieres "editar" ese .txt . .tendra que llamarlo en un campo de formulario tipo textarea por ejemplo ..:

<textarea name="blabla"><? include "tu_txt.txt" ?></texarea>

Y todo eso bajo un formulario (<form ..>) para que puedas "enviar" esos cambios a tu script de proceso PHP que va hacer su correspondiente fopen() en modo escritura y guardará ese "txt" nuevamente con tus modificaciones ...

Un saludo,
  #10 (permalink)  
Antiguo 03/06/2004, 10:50
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 11 meses
Puntos: 0
Solucionado. Gracias.

Realmente, la interactividad es muy elevada si se permite modificar textos.
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 15:58.