Dic26
2008Conversor de monedas con PHP
Autor: aartiles | Archivado en: PHP, Recursos
2008
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | <?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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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; } |
Tags: conversor moneda, currency converter, PHP, Recursos
Posts Relacionados












Fantástico, Alfredo.
Muchas gracias por compartir tan práctico código.
Genial tronco :)
Buenas, me gustaria saber como aplicar ese codigo, e sque soy nuevo en esto, gracias