• ¿Quieres apoyar a nuestro foro haciendo una donación?, entra aquí.

Recuperar Indicadores Economicos

necronomicron

Hij@'e Puta
Registrado
2005/03/23
Mensajes
5.592
Sexo
Macho
ACA LES MUESTRO UN SCRIPT PHP PARA RECUPERAR LOS INDICADORES ECONOMICOS DESDE "http://www.bancoestado.cl/bancoestado/indiceseconomicos/indicadores.asp"

Código:
<?php

function indicadores($tipo,$limite, $fin,$fuente){

$domain = strstr($fuente, $limite);

$domain = $domain;



switch ($tipo) {
case "fecha":
$domain=split('\n',$domain);
return strip_tags(str_replace("al ","",str_replace($fin,"",$domain[0])));
break;
case "uf":
$domain=strip_tags($domain);
$domain=split('\n',$domain);
return str_replace(array("\r\n", "\n", "\r", "\t","&","UF"," ","$"),"",$domain[0]);
break;
case "utm":
$domain=strip_tags($domain);
$domain=split('\n',$domain);
return str_replace(array("\r\n", "\n", "\r", "\t","&","UTM"," ","$"),"",$domain[0]);
break;
case "dolar":
$domain=strip_tags($domain);
$domain=split('\n',$domain);
return str_replace(array("\r\n", "\n", "\r", "\t","&","lar Observado"," ","$"),"",$domain[0]);
break;
case 2:
echo "i equals 2";
break;
}
}
// muestra, p.ej.  La última modificación de archivo.txt fue: December 29 2002 22:16:23.


$nombre_archivo = 'indicadores.opt';

if (file_exists($nombre_archivo)) {
} else {
$txt = fopen("indicadores.opt","w+");
fclose ($txt);
}


if (date ("dmY", filemtime($nombre_archivo))== date ("dmY")) {
} else {
$fuente  = file_get_contents('http://www.bancoestado.cl/bancoestado/indiceseconomicos/indicadores.asp');
$fecha=indicadores('fecha','al ', ")</fo",$fuente);
$uf=indicadores('uf','UF</a></font></td>', "z",$fuente);
$utm=indicadores('utm','UTM</a></font></td>', "z",$fuente);
$dolar=indicadores('dolar','lar Observado</a></font></td>', "z",$fuente);
$txt = fopen("indicadores.opt","w+");
fwrite($txt, $fecha.chr(13).chr(10));
fwrite($txt, $uf.chr(13).chr(10));
fwrite($txt, $utm.chr(13).chr(10));
fwrite($txt, $dolar.chr(13).chr(10));	
fclose ($txt);
}


?>
<style type="text/css">
<!--
.Estilo1 {
font-family: Arial;
font-size: 12px;
}
-->
</style>




<table width="100%" height="274" border="0">
<tr><td colspan="3" rowspan="3" valign="top"><table width="169" height="135" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="10" align="left" valign="bottom"><div align="left"><img src="ai.GIF" alt="" width="10" height="10" align="top" /></div></td>
<td width="148" height="5" background="lsup.GIF"></td>
<td ><img src="ad.GIF" alt="" width="10" height="10" align="top" /></td>
</tr>
<tr>
<td height="115" background="li.GIF"></td>
<td>

<div align="left" class="Estilo1">
<?php
$ind=file("indicadores.opt");
$cou=count($fuente);

echo "Fecha : ".$ind[0];
echo "<br />";
echo "<br />UF : ".$ind[1];
echo "<br />";
echo "<br />UTM : ".$ind[2];
echo "<br />";
echo "<br />Dolar : ".$ind[3];
?>
</div>
<br/>
<div align="center" class="Estilo1">
<a href="http://www.uf.cl" target="_blank">Indicadores económicos actuales y anteriores</a></div>      </td>
<td width="10" height="115"background="ld.GIF"></td>
</tr>
<tr>
<td height="10" align="left" valign="top"><div align="left"><img src="bi.GIF" alt="" width="10" height="10" align="top" /></div></td>
<td background="linf.GIF"></td>
<td ><img src="bd.GIF" alt="" width="10" height="10" align="top" /></td>
</tr>
</table>
<br>


lo que hace es recuperar mediante operadores y manejadores de cadenas, la informacion vinculada a los datos que necesitamos, despues los pone en variables, y los envia a un archivo de texto, posteriormente es verificado cada vez que alguien lo pide y si cambia la fuente, actualiza el archivo automaticamente, solo se demora un poco mas cuando se carga la primera vez en el dia, ya que los indicadores cambian diariamente.

espero les sirva.

edito para agregar lo siguiente: se guarda la info en un archivo de texto, para no tener que realizar la busqueda y parsear el archivo cada vez, ya que este contiene gran cantidad de info y solo se necesita encontrar esos 4 valores, estos se guardan y son recuperados desde el archivo, se compara la fecha grabada con la fecha actual y si son diferentes, re100 hay se realiza la operacion de recuperacion.
 
jajaja, muy buena, yo los sacaba de terra.cl

aqui va el que uso yo:

Para el dolar:
Código:
Dolar: <?php //Dolar Observado!
$url = "http://www.terra.cl/valores/";
$palabra = "DOLAR OBSERVADO";
$x = 1; //evita tags <! (invisibles)

$fd = @fopen($url, "r"); //abre la url y comienza desde el principio para solo lectura. Apertura para s�lo lectura; ubica el apuntador de archivo al comienzo del mismo.ile ($line=@fgets($fd,1000)){
$pos = strpos ($line, $palabra);
if ($pos){
$glosa = " ";
$line2=fgets($fd,1000);
echo strip_tags($glosa.trim($line2));
}
}
@fclose ($fd);
?>

para la UF:
Código:
UF: <?php //UF
$url = "http://www.terra.cl/valores/";
$palabra = "UF :";
$x = 1; //evita tags <! (invisibles)

$fd = @fopen($url, "r"); //abre la url y comienza desde el principio para solo lectura. Apertura para s�lo lectura; ubica el apuntador de archivo al comienzo del mismwhile ($line=@fgets($fd,1000)){
$pos = strpos ($line, $palabra);
if ($pos){
$glosa = " ";
$line2=fgets($fd,1000);
echo strip_tags($glosa.trim($line2));
}
}
@fclose ($fd);
?>


es un poco más corto, lo que hace es abrir la pagia en modo lectura y busca linea por linea hasta que pilla la palabra buscada (ej, dolar) y despues le digo que extraiga la linea siguiente que corrsponde al valor del dolar segun la pagina de terra.

Saludos!
PD: a importantes!
 
en si es reparecido al tuyo pero tiene mas codigo para verificar si hay cambios y tiene la maquetacion de muestra de la info.


:thumbup:
 
Volver
Arriba