Obtener cotización del dolar y euro en php
Sabiendo que las cotizaciones cambian a diario sería muy complicado guardarla en una base de datos y modificar su valor a mano.
Estuve buscando y encontré una alternativa que nos permite obtener automáticamente las cotizaciones actuales.
Es muy util sobre todo si necesitamos realizar algún cálculo. A continuación el código:
<?php
function obtener_cotizacion()
{
// URL banco nacion
$url = “http://www.bna.com.ar/bp/bp_cotizaciones.asp?op=m”;
// regexp para buscar los valores
$regexp = ‘/<td align=”center”>([0-9]\.[0-9]{4})<\/td>/’;
// cache de n * 60 segundos, ajustable… 6 horas en este caso
$cache_time = 6 * 60 * 60; // archivo de cache de divisas
$cache_file = ‘divisas.cache.txt’;
if ( file_exists($cache_file) && time() – $cache_time < filemtime($cache_file) )
{
$cache = file_get_contents($cache_file); $datos = unserialize($cache); return $datos;
}
else
{
$html = file_get_contents($url);
if (preg_match_all($regexp, $html, $matches))
{
$valores['dolar_compra'] = $matches[1][0];
$valores['dolar_venta'] = $matches[1][1];
$valores['libra_compra'] = $matches[1][2];
$valores['libra_venta'] = $matches[1][3];
$valores['euro_compra'] = $matches[1][4];
$valores['euro_venta'] = $matches[1][5];
$serialized = serialize($valores);
$fh = fopen($cache_file, ‘w+’);
if($fh)
{
fwrite($fh, $serialized); fclose($fh);
}
return $valores;
}
else
return FALSE;
}
}
$divisas = obtener_cotizacion();
?>
Espero que les sirva.
Fuente: http://blitux.tumblr.com/post/160194151/obtener-cotizacion-del-dolar-y-euro