Foros del Web » Programando para Internet » PHP »

guardar la pagina actual en determinado directorio del servidor

Estas en el tema de guardar la pagina actual en determinado directorio del servidor en el foro de PHP en Foros del Web. Hola, necesito ayuda por favor, El problema es el siguiente ejecuto una consulta a una tabla mysql utilizando php, lo que necesito es guardar el ...
  #1 (permalink)  
Antiguo 11/07/2005, 19:48
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 18 años, 9 meses
Puntos: 5
guardar la pagina actual en determinado directorio del servidor

Hola, necesito ayuda por favor,

El problema es el siguiente ejecuto una consulta a una tabla mysql utilizando php, lo que necesito es guardar el resultado como un archivo html para visualizarlo posteriormente algo asi.

Ej: 12-07-2005.html

Ojala me pueda alguien ayudar
  #2 (permalink)  
Antiguo 11/07/2005, 20:46
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 22 años, 2 meses
Puntos: 2
Uhm..

Mira, es una idea, solo eso, porque es bastante insegura, pero podria ser asi, guardas todo el resultado de tu query en una variables... y luego

Código PHP:

$nombre_pagina
"12-07-2005.html";
$contenido "<html>.......";

system(" echo $contenido > $nombre_pagina");
//para esto tu carpeta debe tener chmod 777 y la funcion system habilitada en tu maquina *NIX, en windows es shell_exec(........) 
  #3 (permalink)  
Antiguo 11/07/2005, 21:16
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 22 años, 2 meses
Puntos: 2
Mira navegando me encontre una forma un poco mas segura, por favor no dejes de visitar este enlace, y siguiendo mi idea anterior, almacenas el codigo en variable y luego lo guardas usando http://www.forosdelweb.com/f18/funcion-para-crear-archivos-315670/


saludos
  #4 (permalink)  
Antiguo 12/07/2005, 13:01
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 18 años, 9 meses
Puntos: 5
Si ya lo probe y me funciona gracias, lo unico que no pude hacer es especificar el directorio donde debe crearse o podria ser algo asi.

$nombre_pagina = "/consultas/12-07-2005.html"
  #5 (permalink)  
Antiguo 12/07/2005, 15:46
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 22 años, 2 meses
Puntos: 2
Cita:
Iniciado por hieloverde
Si ya lo probe y me funciona gracias, lo unico que no pude hacer es especificar el directorio donde debe crearse o podria ser algo asi.

$nombre_pagina = "/consultas/12-07-2005.html"

Primero tienes que buscar tu ruta, por ejemplo

Código PHP:
 system("pwd"); 
eso te dira (por ejemplo) /home/nrlabs/public_html/miscript/


y tu le indicas a php...


Código PHP:
system("echo $variable > /home/nrlabs/public_html/miscript/carpeta/$nombre_pagina"); 
recuerda chmod 777 y es muy inseguro.

OJO la funcion system() no siempre esta habilitada.
y sigo diciendo que es inseguro, lee mejor el enlace que te pegue un post mas arriba, puedes usar la funcion fwrite y touch.




saludos
  #6 (permalink)  
Antiguo 12/07/2005, 17:14
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 18 años, 9 meses
Puntos: 5
Si, utilice la funcion fwrite la puse algo asi


Código:
$contenido = "Contenido de la consulta";
$archivo = "12-07-2005.html";
$crear = fopen($archivo,"w");
$grabar = fwrite($crear,$contenido);
fclose($crear);

lo unico es que crea un archivo en el mismo directorio donde esta el codigo, y lo que necesito es especificar la ruta lo que intente fue modificar la variable archivo poniendola algo asi.

Código:
$archivo = "../directorio/12-07-2005.html";
esto me funciono lo unico es que yo necesito guardar por completo la pagina que muestra el contenido de la consulta incluyendo las tablas tablas el codigo de que muestra los resultados esta algo asi.

<?php
$numero = rand(1,200);
$consulta = "SELECT * FROM `tabla` WHERE `id` = '$numero'
$result = mysql_query($sql,$conexion);
$i = mysql_fetch_array($result);
?>

<html>
<head>
</head>
<body>
<table border="0">
<tr>
<td><? echo($i['titulo']); ?></td>
</tr>
</body>

entonces el codigo html no me lo va a guardar, y lo que necesito es guardar una copia exacta de lo que se muestra en pantalla, no se si me puedas ayudar con esto

Saludos
  #7 (permalink)  
Antiguo 12/07/2005, 17:17
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 22 años, 2 meses
Puntos: 2
Cita:
Iniciado por hieloverde
$archivo = "../directorio/12-07-2005.html";
el html guardalo en una variable...

e incluyele la ruta completa

Código PHP:

fwrite
("/home/nombre/public_html/poublicos/$pagina",w
  #8 (permalink)  
Antiguo 12/07/2005, 19:43
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 18 años, 9 meses
Puntos: 5
Como hago para guardar el codigo html que se esta mostrando en una variable para
poder crear el archivo?
  #9 (permalink)  
Antiguo 14/07/2005, 16:42
 
Fecha de Ingreso: mayo-2005
Mensajes: 1
Antigüedad: 18 años, 11 meses
Puntos: 0
ayuda please¡¡¡

necesito lo mismo que hilo verde...y he intentado de todo...y no puedo meter los datos dinamicos dentro del html...como se puede hacer¡¡¡...alguien que nos ayuda please..
  #10 (permalink)  
Antiguo 14/07/2005, 21:43
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Cita:
Iniciado por hieloverde
Si, utilice la funcion fwrite la puse algo asi


Código:
$contenido = "Contenido de la consulta";
$archivo = "12-07-2005.html";
$crear = fopen($archivo,"w");
$grabar = fwrite($crear,$contenido);
fclose($crear);

lo unico es que crea un archivo en el mismo directorio donde esta el codigo, y lo que necesito es especificar la ruta lo que intente fue modificar la variable archivo poniendola algo asi.

Código:
$archivo = "../directorio/12-07-2005.html";
esto me funciono lo unico es que yo necesito guardar por completo la pagina que muestra el contenido de la consulta incluyendo las tablas tablas el codigo de que muestra los resultados esta algo asi.

<?php
$numero = rand(1,200);
$consulta = "SELECT * FROM `tabla` WHERE `id` = '$numero'
$result = mysql_query($sql,$conexion);
$i = mysql_fetch_array($result);
?>

<html>
<head>
</head>
<body>
<table border="0">
<tr>
<td><? echo($i['titulo']); ?></td>
</tr>
</body>

entonces el codigo html no me lo va a guardar, y lo que necesito es guardar una copia exacta de lo que se muestra en pantalla, no se si me puedas ayudar con esto

Saludos

si ese es el codigo que genera la pagina html te hare el codigo para que lo guarde en una variable

Código PHP:
<?php
$numero 
rand(1,200);
$consulta "SELECT * FROM `tabla` WHERE `id` = '$numero'";
$result mysql_query($sql,$conexion);
$i mysql_fetch_array($result);

$source='
<html>
<head>
</head>
<body>
<table border="0">
<tr>
<td>'
.echo($i['titulo']).'</td>
</tr>
</body>'
;
?>
&source contendra exactamente lo mismo que se mostraba en el navegador con el otro codigo
  #11 (permalink)  
Antiguo 14/07/2005, 22:10
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Código PHP:
<?php
ob_start
();
$numero rand(1,200);
$consulta "SELECT * FROM `tabla` WHERE `id` = '$numero'";
$result mysql_query($sql,$conexion);
$i mysql_fetch_array($result);
?>

<html>
<head>
</head>
<body>
<table border="0">
<tr>
<td><? echo($i['titulo']); ?></td>
</tr>
</body>
<?php
$contenido
=ob_get_contents();
ob_end_flush();
$archivo "12-07-2005.html";
$crear fopen($archivo,"w");
$grabar fwrite($crear,$contenido);
fclose($crear);

?>
Una solucion mas facil y efectiva sin modificar codigo existente solo adicion de nuevo

Última edición por dopon; 15/07/2005 a las 05:42
  #12 (permalink)  
Antiguo 15/07/2005, 05:43
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Hey si te funciono hombre? si es asi ponlo aqui para saber y saber que es una solucion a lo que uds querian, ami me funciona con un codigo mas o menos pequeño asi que no venfria de mas probarlo con uno bien grande
  #13 (permalink)  
Antiguo 15/07/2005, 14:15
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 18 años, 9 meses
Puntos: 5
Gracias dopon,

Probe los dos codigos y funcionan muy bien y el que me acomodo mejor fue este:

Código PHP:
<?php 
ob_start
(); 
$numero rand(1,200); 
$consulta "SELECT * FROM `tabla` WHERE `id` = '$numero'"
$result mysql_query($sql,$conexion); 
$i mysql_fetch_array($result); 
?> 

<html> 
<head> 
</head> 
<body> 
<table border="0"> 
<tr> 
<td><? echo($i['titulo']); ?></td> 
</tr> 
</body> 
<?php 
$contenido
=ob_get_contents(); 
ob_end_flush(); 
$archivo "12-07-2005.html"
$crear fopen($archivo,"w"); 
$grabar fwrite($crear,$contenido); 
fclose($crear); 
?>
En efecto crea un archivo HTML con el codigo de la ultima consulta.

Mil gracias por la solucion a este problema, y ojala tambien te haya servido a ti CEVENEGA como a mi me funciono.
  #14 (permalink)  
Antiguo 15/07/2005, 15:40
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 18 años, 9 meses
Puntos: 5
Solamente cuiden que el directorio donde va a ser creado el archivo.html tenga los permisos para escritura,

y por lo demas funciona muy bien.
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 02:17.