Currencies Updator est une solution de mise à jour semi-automatique du taux de change des monnaies européennes.
J'ai développé en PHP, un système de parsage des flux XML de la BCE (Banque Centrale Européenne, qui met quotidiennement à jour, le taux des devises).
Une fois les taux récupérés ils peuvent être archivés dans une base MySQL, pour servir à des applications web diverses.
ATTENTION : Vous devez avoir les librairies cURL et SimpleXML, de PHP5 activées pour pouvoir utiliser ce code.

- Télécharger la source zippée, avec un exemple d'utilisation dans un formulaire Télécharger Currencies Updator

<?php
// Adresse du flux XML de la BCE
$request_url = "http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml";
 
// Utilisation de La Librairie cURL
// Initialise une nouvelle session cURL pour communiquer avec le serveur
$ch = curl_init();
// nbr de secondes timeout
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $request_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
// fermeture cURL
curl_close($ch);
 
// Utilisation de La Librairie SimpleXML pour parser
$xml = new SimpleXMLElement($data);
 
// Récuperation en array de la date de dernière mise à jour sur l'attribut "time" du flux
$time = $xml->xpath('//@time');
// Récuperation en array des devises sur l'attibut "currency" du flux
$currency = $xml->xpath('//@currency');
// Récuperation en array des taux sur l'attibut "rate" du flux
$rate = $xml->xpath('//@rate');
 
// Comptage du nombre de devises stockés dans l'array "currency" retouné par SimpleXML
$currency_counter = count($currency);
$currency_array = array();
// Pour chaque devises comptées...
for( $y=0; $y < $currency_counter; $y++ ) {
	// Récupération de la valeur dans l'array
	$currency_y=$currency[$y];
	// Conversion des object(SimpleXMLElement) en string 
	$currency_y = strval($currency_y); 
	// Récupération de la valeur dans l'array
	$rate_y=$rate[$y];
	// Conversion des object(SimpleXMLElement) en string
	$rate_y = strval($rate_y); 
	// ... Enregistrement en array des devises
	$currency_array[$currency_y] = $rate_y;
	}
 
// Stockage en variable de la date de mise à jour
$last_update_from_ecb = $time[0]; 
// echo $last_update_from_ecb // Affichage de la date de mise à jour
 
// print_r($currency_array); // Affichages de l'array de devises
 
/*
Maintenant, si je fais un echo de ce type sur le code de la monnaie : 
echo $currency_array['USD'];
J'obtiens la valeur en US Dollar de 1 Euro 
*/
?>
 

SIRET N° 500 682 158 00018