Hoy vamos a ver una sencilla pero útil función para calcular el cambio de divisa de euro a otras monedas. Para ello vamos a auxiliarnos del Banco Central Europeo. En su web el ECB pone a nuestra disposición un archivo xml que actualizan diariamente a las 2:15pm. http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
<?xml version="1.0" encoding="UTF-8"?>
<gesmes:Envelope xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref">
<gesmes:subject>Reference rates</gesmes:subject>
<gesmes:Sender>
<gesmes:name>European Central Bank</gesmes:name>
</gesmes:Sender>
<Cube>
<Cube time='2008-12-24'>
<Cube currency='USD' rate='1.4005'/>
<Cube currency='JPY' rate='126.65'/>
<Cube currency='BGN' rate='1.9558'/>
<Cube currency='CZK' rate='26.394'/>
<Cube currency='DKK' rate='7.4495'/>
<Cube currency='EEK' rate='15.6466'/>
<Cube currency='GBP' rate='0.94930'/>
<Cube currency='HUF' rate='267.76'/>
<Cube currency='LTL' rate='3.4528'/>
<Cube currency='LVL' rate='0.7061'/>
<Cube currency='PLN' rate='4.0863'/>
<Cube currency='RON' rate='3.9754'/>
<Cube currency='SEK' rate='11.2305'/>
<Cube currency='SKK' rate='30.220'/>
<Cube currency='CHF' rate='1.5043'/>
<Cube currency='NOK' rate='9.9150'/>
<Cube currency='HRK' rate='7.3116'/>
<Cube currency='RUB' rate='40.1930'/>
<Cube currency='TRY' rate='2.1313'/>
<Cube currency='AUD' rate='2.0540'/>
<Cube currency='BRL' rate='3.3338'/>
<Cube currency='CAD' rate='1.6984'/>
<Cube currency='CNY' rate='9.5790'/>
<Cube currency='HKD' rate='10.8542'/>
<Cube currency='IDR' rate='15720.61'/>
<Cube currency='KRW' rate='1836.48'/>
<Cube currency='MXN' rate='18.6827'/>
<Cube currency='MYR' rate='4.8730'/>
<Cube currency='NZD' rate='2.4371'/>
<Cube currency='PHP' rate='66.540'/>
<Cube currency='SGD' rate='2.0201'/>
<Cube currency='THB' rate='48.464'/>
<Cube currency='ZAR' rate='13.4742'/>
</Cube>
</Cube>
</gesmes:Envelope>
Como veis la estructura del xml es muy sencilla por lo que podemos usar la función simplexml_load_file que nos permite consultar el contenido fácilmente en forma de un objeto que tiene la misma estructura que el xml. Aquí os dejo la función:
function convertir_moneda($moneda = 'USD')
{
$cambio = false;
$urlservicio = 'http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml';
$xml = simplexml_load_file($urlservicio);
$cube = $xml->Cube->Cube->Cube;
foreach ($cube as $item) {
$attrs = $item->attributes();
if ($attrs['currency'] == $moneda) {
$cambio = (float)$attrs['rate'];
return $cambio;
}
}
return $cambio;
}
Usuarios que han visto este tema también han visto...
- Control de permisos en PHP con phpGACL
- Banear IP de Web con PHP
- Leer un archivo de texto con PHP
- Los Frameworks de PHP agilizan tu trabajo
- ¿De donde vienen las variables ? en PHP
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.