Foros del Web » Programando para Internet » PHP »

Codigo fuente a variable

Estas en el tema de Codigo fuente a variable en el foro de PHP en Foros del Web. Buenas tardes!!! Tengo un pequeño problemilla :( Les voy a comentar un poquito lo que me pasa <y no es ningún trauma personal ;), jeje>. ...
  #1 (permalink)  
Antiguo 31/08/2006, 21:42
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 11 años, 3 meses
Puntos: 0
Codigo fuente a variable

Buenas tardes!!!
Tengo un pequeño problemilla :(
Les voy a comentar un poquito lo que me pasa <y no es ningún trauma personal ;), jeje>. Bueno creo que mejor les pongo otro ejemplo que puede aclararse un poco más.
Tengo un archivo php (llamemosle X es decir x.php) que recibe unas variables de un formulario y los imprime. Hasta ahí todo bien, no parece haber problemas. Si en este archivo x.php ya procesado (es decir impreso en la pantalla miramos su código fuente veremos un código html. Perfecto, por ahora no es nada nuevo y nada que cause problemas.
Ahora por otro lado (sin borrar por completo de la memoria el párrafo anterior) yo quiero escribir "algo" en un archivo (llamemosle archivo.txt), entonces luego de buscar en el manual encontré esto:

<?php $nombre_archivo = 'archivo.txt'; $contenido = 'algo';
if (is_writable($nombre_archivo)) {

if (!$gestor = fopen($nombre_archivo, 'a+')) { echo "No se puede abrir el archivo ($nombre_archivo)"; exit; }

if (fwrite($gestor, $contenido) === FALSE) { echo "No se puede escribir al archivo ($nombre_archivo)"; exit; }
echo "&Eacute;xito, se escribi&oacute; ($contenido) al archivo ($nombre_archivo)"; fclose($gestor); } else { echo "No se puede escribir sobre el archivo $nombre_archivo"; }
?>


Que primero se fija se se puede escribir en el archivo, luego lo abre y por último escribe "algo". Aquí tampoco hay problema. No hay error ninguno. Ahora recopilando los dos párrafos anteriores es cuando me surge el dilema.
Yo NO quiero escribir en el archivo.txt "algo", sino que realmente lo que quiero escribir es el código html que se genera luego de procesar el archivo x.php

Es decir que de alguna manera haga lo mismo, que ejecutar el archivo x.php, verlo en la pantalla ir a archivo -> Guardar como... y ahí poner el nombre archivo.txt

Espero que se me haya entendido. Y también espero que alguien pueda echarme una mano con este problemilla. Hasta aquí llegué, y no los molesto más. Perdón por ser tan extenso, pero no quería dejar lugar a dudas sobre el problema.

Desde ya muchas gracias, y prometo ser un colaborador asiduo de éste foro.

eLChiLa
  #2 (permalink)  
Antiguo 01/09/2006, 09:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 11 años, 6 meses
Puntos: 2122
1.- Bienvenido al foro
2.- Este tema es del foro principal, no es OOP
3.- Revisa las FAQ, ahi vas a encontrar muchos tutoriales sobre PHP y varios Tips, este problema que tienes es muy basico y puedes encontrar la solucion en un chistar.

Te doy algo como avance:
Código PHP:
// Principio de tu codigo
ob_start();
// haces toda el proces e imprimes tu formulario etc.

$nombre_archivo "archivo.txt"// Asegurate que el path a este archivo sea correcto
$contenido ob_get_clean();
// si tienes PHP5
$resultado file_put_contents$nombre_archivo$contenido );
// si no tienes PHP5

$fh fopen$nombre_archivo"w" ); // No nescesias is_writtable solo checa tus permisos que sean correctos
fwrite$fh$contenido );
fclose$fh ); 
  #3 (permalink)  
Antiguo 01/09/2006, 11:43
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 11 años, 3 meses
Puntos: 0
Problema Resuelto. Gracias GatorV

Muchas gracias GatorV.
Con lo que me diste y un poquillo de info que encontré por ahi pude hacer lo que yo quería. Paso a contarles qué y cómo lo he hecho por si le sirve a alguien.

Lo que yo buscaba era poder guardar una copia de un archivo generado por php que mostrara los valores de un formulario recibiendo los campos mediante $_POST. Así lo hice...

Cree una página con el formulario con todos los campos bla bla bla... y lo envío a pag2.php

El código de pag2.php es algo así:

//Primero habilito el uso de Búferes de salida
<?php
ob_start();?>
//Luego creo la página como quiera
<html>
<head>
<title>pag2</title>
</head>
<body >

//Aquí recupero e imprimo los valores recibidos del formulario
<?php echo $_POST[var1],", ",$_POST[var2],", ",$_POST[var3]?>
</body>
</html>

//Y aquí es donde empieza lo bueno
<?php
//Nombre del archivo en el que escribir
$nombre_archivo = "valoresrecibidos.htm";
//Esto nos devuelve el Contenido del Búfer de salida
$contenido = ob_get_contents();
//Ahora abro el archivo en modo lectura-escritura
$fh = fopen( $nombre_archivo, "a+" );
//Aquí es cuando escribo el contenido html de la página generada
fwrite( $fh, $contenido );
//Por último cierro el archivo
fclose( $fh );
?>


Y ya está. Terminado. Muchas gracias otra vez a GatorV, que me ha encaminado en el sendero de la luz.
  #4 (permalink)  
Antiguo 01/09/2006, 12:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 11 años, 6 meses
Puntos: 2122
Solo por si no sabias, el modo de "a+" (Append/Read), lo que va a causar es que siempre que se abra el archivo se pegue el contenido a lo ultimo que estaba, yo te recomiendo usar "w" solo para escribir y nada mas.
  #5 (permalink)  
Antiguo 02/09/2006, 07:46
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 11 años, 3 meses
Puntos: 0
Sí lo sabía. Pero gracias es que no me había dado cuenta que todavía seguía ahí... Jejeje, es que estuve jugando y probando cosillas. Muchas gracias
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 22:52.