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 
<?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