Foros del Web » Programando para Internet » PHP »

como puedo recuperar datos de una pag. cualquiera usando expreciones regulares?

Estas en el tema de como puedo recuperar datos de una pag. cualquiera usando expreciones regulares? en el foro de PHP en Foros del Web. encontre una funcion "preg_match_all()", bueno la cosa es que quiero recupera datos como valor del dolar, IPC,UF,etc... de la pag. del baco central u otra, ...
  #1 (permalink)  
Antiguo 18/02/2004, 22:46
Avatar de Bartak  
Fecha de Ingreso: enero-2004
Ubicación: Chilito
Mensajes: 121
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta como puedo recuperar datos de una pag. cualquiera usando expreciones regulares?

encontre una funcion "preg_match_all()", bueno la cosa es que quiero recupera datos como valor del dolar, IPC,UF,etc... de la pag. del baco central u otra, no se como hacerlo, alguien sabe como funciona la cosa??.


saludos
__________________
"Llegado el momento supervisare my propia caida" - Alvaro Henriquez
  #2 (permalink)  
Antiguo 18/02/2004, 23:08
 
Fecha de Ingreso: diciembre-2003
Mensajes: 53
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola bartak

Lees la página completa y la guardas en una variable tipo archivo.

$url="http://www.banco.com";
$fp=fopen($url,"r");
$fuente=fread($fp,500000);

Tienes que detectar algún patrón de código HTML que te ubique en los datos que quieres...
por ejemplo.. "Tipo de cambio= $11.30 ..."
Y te das cuenta que "cambio=" no se repite en niguna otra parte, o por lo menos es la primera que aparece.
Y que desde la "c" hasta los numeros completos son N caracteres.
Entonces...

$tipocambio=substr($fuente,strpos($fuente,"cambio= "),N);
Donde..
substr(origen , posición inicial , cantidad de caracteres);

PHP tiene muchas funciones de strings que te van a ayudar a hacer más trucos si los datos que quieres están muy dispersos entre tanto código.

ALGO IMPORTANTE:
Por alguna razón, cada vez que lees una página externa solo obtiene cierta cantidad de bytes, aunque le digas 500000, así que prueba haciendo un echo $fuente para ver... y si tus datos no alcanzaron a salir o la página está incompleta entonces agrega de nuevo la instrucción de leer:
$fuente=fread($fp,500000);
$fuente=fread($fp,500000);


Saludos


Giorgio
__________________
EmpresasEnRed.com
Diseño Web
  #3 (permalink)  
Antiguo 18/02/2004, 23:16
Avatar de Bartak  
Fecha de Ingreso: enero-2004
Ubicación: Chilito
Mensajes: 121
Antigüedad: 20 años, 3 meses
Puntos: 0
gracias Giorgio, te pasaste
__________________
"Llegado el momento supervisare my propia caida" - Alvaro Henriquez
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 08:31.