Foros del Web » Programando para Internet » PHP »

Miren esto y díganme ustedes

Estas en el tema de Miren esto y díganme ustedes en el foro de PHP en Foros del Web. Un compañero mío de estudio me hizo la siguiente pregunta: Cita: Bueno lo que necesito es alguna sentencia o algún código que me permita descargar ...
  #1 (permalink)  
Antiguo 19/04/2004, 22:17
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Desacuerdo Miren esto y díganme ustedes

Un compañero mío de estudio me hizo la siguiente pregunta:
Cita:
Bueno lo que necesito es alguna sentencia o algún código que me permita descargar una página, o sea, utilizando un script, descargar o copiar en mi disco duro local el código de una página cualquiera, pero de forma dinámica, cada cierto tiempo, a una hora determinada o algo así.
Le respondí que lo de descargar la página no ha de ser díficil. Ahora lo de hacerlo cada cierto tiempo creo que es imposible. El código para lo de escribir la dirección es:
Código PHP:
 $file "http://intranet/cgi_bin/principal.pl";
 
$page fopen($file"r");
 
$content fread($pagefilesize($file));
 
$fp fopen("logs/result.txt","a+");
 
fwrite($fp$content); 
pero eso me retorna este error:
Cita:
Warning: filesize(): Stat failed for http://intranet/cgi_bin/principal.pl (errno=2 - No such file or directory) in c:\program files\apache group\apache\htdocs\marxismo\p.php on line 4
y el fichero existe pues es la página principal de la intranet de mi escuela. Es que hago algo mal ?

Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 20/04/2004, 00:08
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 14 años, 1 mes
Puntos: 1
a ver, primero "mientras mas inteligente soy..." mmm... esas frases...
Bueno, con fopen va a estar mas difícil, por los permisos y eso. No estoy seguro por que te marqué ese error, habría que buscarle. Es posible por que creo que la carpeta cgi del servidor no está disponible de esa manera externa o algo así..
Ahh y dices imposible cada cierto tiempo?? no no, como dices eso, por mas confuso que algo sea, o por poco cerca que lo veamos, está mas lejos de ser imposible.
el siguiente código resuelve el problema, me da weba escribirlo pero ya que...
<meta http-equiv="REFRESH" content="1000;url=estaweb.php">
<?php
$sourceCode = file("http://intranet/cgi_bin/principal.pl");
$myFile = "logs/result.txt";
$reference = fopen($myFile,"r+");
fwrite($reference,$sourceCode);
?


Esto desde luego va a escribir el código html resultante de la web en perl, si quieres el código en perl, tal vez puedas usar show_source, no estoy seguro de si funcione, pero si lo haces desde fuera, no creo.
El meta http, del principio sirve para recargar la web, el número es el tiempo en segundos, modificalo a tu gusto
saludos
  #3 (permalink)  
Antiguo 20/04/2004, 00:11
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 14 años, 1 mes
Puntos: 1
ups... es mejor usar el modo a+, bueno, depende de tu necesidad..
  #4 (permalink)  
Antiguo 20/04/2004, 01:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Si lees la documentacion de filesize(), veras que dice que no funciona con ficheros remotos (tu caso).

Y para lanzar un script PHP a ciertas horas, debes usar las herramientas del sistema operativo del servidor para esos menesteres: cron en *nix y el "administrador de tareas programadas" (o algo asi) en windows.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 20/04/2004, 09:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En la misma función filesize() en los comentarios de los usuarios tienes alternativas para copiar el contenido de una llamada a una página externa (http:// ....)

También .. dependiendo de la versión de PHP que uses y de los "wrapers" habilitados en tu servidor podrías usar:

copy()
http://www.php.net/copy

de forma remota

Y por último .. puedes usar el buffer de salida de PHP con las funciones ob_start() (y afines) para llamar a tu archivo extreno por readfile() por ejemplo si dispones de permisos y los "wrapers" externos habilitados (http:// ...)

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 03:50.