Foros del Web » Programando para Internet » PHP »

Tomar datos de página externa

Estas en el tema de Tomar datos de página externa en el foro de PHP en Foros del Web. Espero el título sea comprensible. Necesito tomar un dato que se muestra en una web (externa a mi host) y ponerlo en la mia (de ...
  #1 (permalink)  
Antiguo 08/04/2008, 19:05
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
[Solucionado] Tomar datos de página externa

Espero el título sea comprensible.

Necesito tomar un dato que se muestra en una web (externa a mi host) y ponerlo en la mia (de mi cliente).

Son los indicadores económicos, y como se actualizan a diario pues la idea es no tenerlos que poner manualmente dia a dia.

www.elcolombiano.com <--- Esta es la página que tiene los indicadores (Columna derecha)

Y necesito leerlos y ponerlos en la mia.

Hay otras web que lo han hecho con iframes, por obvias razones no quiero hacer lo mismo.

¿Cómo podría hacerlo?

Mil Gracias.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"

Última edición por lucasan; 10/04/2008 a las 15:45
  #2 (permalink)  
Antiguo 08/04/2008, 20:04
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Tomar datos de página externa

Hola lucasan,
Aquí tienes el código que te hace falta.

Código PHP:
$indicadores file_get_contents("http://www.elcolombiano.com/Indicadores/Index.htm");
echo 
$indicadores
Al echo lo haces en el lugar que quieras en tu plantilla html.
Yo lo que haría es guardarlo en un archivo txt y actualizarlo una vez por día para no tener que sacarlo de esa web en cada visita.


Me fijo si el txt tiene mas de 24 hs de antiguedad y en ese caso ejecuto el código que te mostré antes solo que despues de levantarlo lo guardo en un txt.

Código PHP:
if (filemtime("indicadores.txt")+86400 time())
{
// En este caso el archivo tiene mas de 24 horas, lo actualizamos
// Lo traigo de la web
$indicadores file_get_contents("http://www.elcolombiano.com/Indicadores/Index.htm");
 
// Lo guardo en mi server local
file_put_contents("indicadores.txt",$indicadores);
}
 
// Lo levanto de mi server
$indicadores file_get_contents("indicadores.txt");
 
//Lo muestro donde quiero
echo $indicadores

Saludos Amigo
  #3 (permalink)  
Antiguo 08/04/2008, 20:21
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Re: Tomar datos de página externa

Usermax, mil gracias, mis conocimientos enPHP son básicos, pero creo entenderlo, lo intentaré y posteo cualquier duda o logro.

Mil Gracias.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #4 (permalink)  
Antiguo 10/04/2008, 15:22
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Re: Tomar datos de página externa

De nuevo por aca Usermax, mil gracias de nuevo, el script funciona de maravilla, y lo mezclé con uno llamado htmlsql que me referenció Metacortex, buenisimo.

Algo para preguntarte, cuando es la primera vez del dia (o cuando el archivo no existe) me da un warning, eso lo quite colocando el error_reporting (0); pero es normal?

ESTE ES EL WARNING


Warning: filemtime() [function.filemtime]: stat failed for indicadores/indicadores.txt in C:\xampp\htdocs\pruebas\indicadores.php on line 5

Gracias.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #5 (permalink)  
Antiguo 10/04/2008, 15:30
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Tomar datos de página externa

No, eso se soluciona de esta manera:

Cambia esto:

if (filemtime("indicadores.txt")+86400 < time())


Por esto

if (@filemtime("indicadores.txt")+86400 < time())

Lo único que hice fue agregarle un @ atras de filemtime.

Lo pruebas y me dices.
  #6 (permalink)  
Antiguo 10/04/2008, 15:35
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Tomar datos de página externa

Ahhh, y al final de todo agrega

Código PHP:
clearstatcache(); 
Me habia olvidado.

porque el resultado de la función filemtime() se guarda en la cache y miente.-
  #7 (permalink)  
Antiguo 10/04/2008, 15:35
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Re: Tomar datos de página externa

Una vez mas Perfectisimo.

Que hace esa @?

Gracias.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #8 (permalink)  
Antiguo 10/04/2008, 15:36
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Tomar datos de página externa

El @ le dice a PHP que no muestre error de una función específica.
Fíjate que arriba agregue algo...
  #9 (permalink)  
Antiguo 10/04/2008, 15:44
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Re: Tomar datos de página externa

Listo, quedó perfecto.

Gracias Usermax.

Tema solucionado.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:15.