Récupérer un taux de change et faire des conversions

0.00 avg. rating (0% score) - 0 votes
Partager:

Parfois il arrive qu’on est besoin de savoir combien on va payer quand on achète un produit dans une autre devise, car le taux de change peut être avantageux et parfois c’est tout le contraire. Il vaut mieux donc savoir combien on va payer avant d’acheter pour pas avoir de mauvaise surprise.

Donc par exemple combien on paye en Euro si j’achète un produit a 100$ ? Pour cela il faut connaitre le taux de change entre les différente devises.
Comme toujours certain comme moi, je préfère le faire sans passer par un site tiers et ça permet d’apprendre de nouvelle chose en plus. On va donc récupérer le taux de change sur le site xe.com

La ligne de code la plus importante, on commence par récupérer la page ou on va chercher nos informations:


<?php
$page = file_get_contents('http://www.xe.com/fr/currencyconverter/convert/?Amount=1&From=USD&To=EUR');
?>

Ensuite on doit récupèrer ce qu’on veut sur la page, pour cela on va utilser deux preg_match_all qui vont prendre juste ce que l’ont veut sur la page:


<?php
// $ vers €:
preg_match_all('`1&nbsp;USD&nbsp;=&nbsp;(.+)&nbsp;EUR`Uis', $page, $match, PREG_SET_ORDER);
$taux_de_change_dollar_euro = $match[0][1];

// € vers $:
preg_match_all('`1&nbsp;EUR&nbsp;=&nbsp;(.+)&nbsp;USD`Uis', $page, $match, PREG_SET_ORDER);
$taux_de_change_euro_dollar = $match[0][1];
?>

Et on affiche:


1$ = <?=$taux_de_change_dollar_euro;?>€<br>
1€ = <?=$taux_de_change_euro_dollar;?>$<br>

Pour finir on va convertir 100$ en Euro:


<?php
$argent = 100; // 100$ en euro
$calc = $argent / $taux_de_change_euro_dollar;
echo $argent."$ = ".$calc."€<br>";

Ici, 100€ en Dollar:


<?php
$euro = 100; // 100€ en dollar
$calc = $euro * $taux_de_change_euro_dollar;
echo $euro."€ = ".$calc."$";
?>

Il vaut mieux sauvegarder le taux de change dans un fichier/bdd pour ne pas surcharger le site de requête inutile.
A vous de tester.


Tous les codes sont testés et sont fonctionnels, si un de ces codes ne marche pas chez vous, merci de me le signaler.
Partager:
0.00 avg. rating (0% score) - 0 votes

Vous aimerez aussi...

Laisser un commentaire