Presentador Virtual e24Presenter
Encuentra usuarios de Twitter en tu ciudad con LocaFollow

votarConversor 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;	
	}
Alfredo ArtilesSoy Alfredo Artiles, Co-Fundador de equipo24, e24Presenter y e24Apps. Mi pasión es el AJAX, SEO, SEM y emprender todo lo que se me ponga por delante. Si me necesitas estoy 24x7 en Twitter @aartiles24.

Tags: , , ,
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • LinkedIn
  • Meneame
  • MySpace
  • Technorati
  • TwitThis
Posts Relacionados

6 Comentarios on “Conversor de monedas con PHP”

  1. #1 garcia-galvez dijo 8:50 pm el Diciembre 26th, 2008:

    Fantástico, Alfredo.

    Muchas gracias por compartir tan práctico código.


  2. #2 eMe dijo 9:40 am el Diciembre 29th, 2008:

    Genial tronco :)


  3. #3 jd dijo 6:35 pm el Febrero 18th, 2009:

    Buenas, me gustaria saber como aplicar ese codigo, e sque soy nuevo en esto, gracias


  4. #4 bhagavata purana dijo 9:16 pm el Agosto 20th, 2009:

    Muy buen código, me pregunto si hay uno que sea monedas internacionales. Pues es demasiado limitado si es para europa


  5. #5 Jorge dijo 2:44 pm el Septiembre 9th, 2009:

    Excelente aporte, es justo lo que necesitaba y está muy bien explicado.


  6. #6 jcarranza dijo 10:57 am el Septiembre 26th, 2009:

    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.



Deja un comentario.