Conversor de monedas con PHP
Autor: aartiles | Archivado en: PHP, Recursos el día 26/Dic/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
Muy buen código, me pregunto si hay uno que sea monedas internacionales. Pues es demasiado limitado si es para europa
Excelente aporte, es justo lo que necesitaba y está muy bien explicado.
Hola, me parece muy interesante este script pero soy un novato en php y me gustaría saber cómo se usa el mismo en un documento php final.
saludos y felicidades.