Foros del Web » Programando para Internet » PHP »

guardar resultado en archivo.txt

Estas en el tema de guardar resultado en archivo.txt en el foro de PHP en Foros del Web. Estoy generando un reporte de la base de datos con php, y quiero que el resultado de la consulta realizada no solo se pueda ver ...
  #1 (permalink)  
Antiguo 14/05/2003, 13:23
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 15 años, 1 mes
Puntos: 2
guardar resultado en archivo.txt

Estoy generando un reporte de la base de datos con php, y quiero que el resultado de la consulta realizada no solo se pueda ver en pantalla sino me gustaria que me lo guarde en un TXT si el operador lo desea. ¿como puedo guardar el resultado de la consulta en un archivo.TXT atraves de un boton.?
Desde ya muchas gracias y saludos a todos.
  #2 (permalink)  
Antiguo 14/05/2003, 13:37
Avatar de Pocket  
Fecha de Ingreso: mayo-2002
Mensajes: 37
Antigüedad: 15 años, 6 meses
Puntos: 0
Proba con este codigo:

$archivo = "C:\inetpub\wwwroot\prueba.txt";
$fp = fopen("$archivo", "w");

$texto = "esto quiero que se copie en el archivo plano";
fputs ($fp, $texto);
fclose ($fp);

Se supone que la variable $texto se la mandara el usuario a través de un <input type='text'> que la página le ofrece.


Última edición por Pocket; 14/05/2003 a las 13:39
  #3 (permalink)  
Antiguo 14/05/2003, 13:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues tienes que generar tu consulta en version "para el .txt" ..

Para eso debes generar el archivo desde los datos de tu consulta .. dandole formato y escribiendo el archivo..

Para eso . usa funciones como fopen() en modo escritura .. fwrite() para escribir líneas en tu archivo ..

Sería algo así (psudo-código)

*** fopen() abres el archivo en modo escritura "W"
*** Bucle actual para leer tus registros de tu BD
***** fwrite($datos ....);
*** cierras bucle
*** fclose() // cierras tu archivo.

Con eso generarias el archivo en el servidor .. Pero, si quieres enviarlo al navegador para descarga .. la técnica es similar pero tan solo haces tu "echo" comun para presentar el dato teniendo en cuenta de no generar HTML que "adorne" el dato y que el salto de línea para un archivo es \n y no <br> que sería para HTML ... previo a esto enviarias las cabeceras HTTP adecuadas para indicar al navegador que lo que "va" es para descargar.

algo tipo:

header(.. cabeceras HTTP .. );

** conectas a tu BD .. etc

** bucle de q obtienes tus datos de tu consutla
echo $row['dato'].",".$row['dato2']."\n";
** }

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 14/05/2003, 14:24
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 15 años, 1 mes
Puntos: 2
Gracias Cluster por la respuesta, pero tengo otra pregunta
1) Seria igual para guardar la informacion en un archivo.DOC .
2) Se puede abrir un archivo Word con PHP.
Gracias y saludos
  #5 (permalink)  
Antiguo 14/05/2003, 20:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
1) La base sería lo mismo (el fopen() .. fwrite ..) pero lo que escribas: tus datos .. le tendrías que añadir los comandos/funciones del formato Word (que no tengo ni idea como es) .. al igual que si quieres dar formato a un texto para un navegador usas HTML ..

2) "abrir" (entiendo leerlo con PHP para extraer datos de ese .doc) .. En principio si .. como cualquier otro archivo via file() o fopen() en modo lectura .. El problema es "lo que vas a leer" .. Necesitarías "interpretar" el formato própio del "Word" ..

(si con "abrir" te refieres a que el PC (navegador) se le abra el word con el documento .doc cargado .. Si, tambien lo puede hacer .. es justamente todo el tema de las cabeceras HTTP que te comenté como header("content-type: nomeacuerdo"); Pero lo que modifique quedará en el PC del usuario . .no en el servidor, para que quedará modificado en el servidor deberías usar COM)

Ahora .. Si tu PHP corre en Windows .. tienes las librerias y extensiones COM para trabajar con sofware M$ como Word .. Exell .. etc:
http://www.php.net/manual/en/ref.com.php

Por otro lado .. un Consejo:
Genera tus datos en formato PDF .. que es lo mas standar (con formato listo para impresión) que te puedes encontrar. PHP dispone de las librerias PDF lib para crear PDF dinámicos partiendo de tus datos .. dandole el formato que gustes de impresión.

http://www.php.net/manual/en/ref.pdf.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 01:43.