moonwar Posté 1 Mars 2009 Partager Posté 1 Mars 2009 Bonjour, J'utilise a la base le code de la Banque Europeenne. Ce code donne le taux de change de l'EURO en fonction des autres devis. La devis DZD n'y est pas. La devis DZD est calculer à la base du taux de change de l'USD. 1USD = 72 DZD. Après qlq modifications, je suis arrivé a ce qui suit (Explication des etapes dans le code): <?php $XMLContent= file("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"); foreach ($XMLContent as $line) { if (ereg("currency='([[:alpha:]]+)'",$line,$currencyCode)) { if (ereg("rate='([[:graph:]]+)'",$line,$rate)) { //On calcul la valeur de 1 EURO en fonction de currencyCode //currencyCode correspond aux autres devis//par exemple pour 1 EURO en fonction de CAD canadien : $currencyCode == "CAD") //On calcul la valeur de 1USD en fonction de l'EURO//div pour identifier la fonction inverse $div = 1; //valeur de 1 USD en fonction de EURO if ($currencyCode[1] == "USD") { $1usd = '.$div/$rate[1].' '.EURO.'; } //On cherche la valeur de 1 DZD //a noter que le DZD est calculé a la base du USD $dzdusd = 72; //On calcul valeur de 1 DZD en fonction du USD $1dzd = $dzdusd * $1usd; //valeur arrondis a 3 chiffres après la virgule echo '1 DZD = '.round($1dzd,3).' '.USD.'<br />'; //valeur de 1 DZD en fonction de CAD if ($currencyCode[1] == "CAD") { echo '1 DZD = '.round($1dzd * $div/$rate[1],3).' '.$currencyCode[1].'<br />'; } //valeur de 1 DZD en fonction de GBP if ($currencyCode[1] == "GBP") { echo '1 DZD = '.round($1dzd * $div/$rate[1],3).' '.$currencyCode[1].'<br />'; } } } } ?> Coté logique, je ne pense pas que je me suis trompé, mais ca ne fonctionne pas ... Merci pour votre aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 1 Mars 2009 Partager Posté 1 Mars 2009 $1usd = '.$div/$rate[1].' '.EURO.'; Je ne fais pas du php tous les jours, mais ça, je ne sais pas très bien ce que ça veut dire. J'ai l'impression que tu t'es un peu emmêlé les pinceaux, au moins avec les ' et les . non? Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
moonwar Posté 2 Mars 2009 Auteur Partager Posté 2 Mars 2009 Merci pour ta réponse. $1usd = '.$div/$rate[1].' '.EURO.'; Jusque là, c'est sur que ca marche, mais le probleme c'est apres le echo '1 DZD = '.round($1dzd * $div/$rate[1],3).' '.$currencyCode[1].'<br />'; Je crois que le probleme est à partir du round(... Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 2 Mars 2009 Partager Posté 2 Mars 2009 Fais un echo $variable après chaque calcul... Si tu penses vraiment que ton $1usd contient ce que tu veux, je crois que tu te trompes lourdement... Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
moonwar Posté 2 Mars 2009 Auteur Partager Posté 2 Mars 2009 Ouin Jacques... le probleme est à partir du round(... Si je connaissais la cause, je ne serais pas sur le forum Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 2 Mars 2009 Partager Posté 2 Mars 2009 Bon, alors: 1. Ton script ne s'exécute même pas, donne une erreur, et indique la ligne dont je te parle, donc je ne vois pas bien comment ton problème serait au round... 2. En PHP comme dans de nombreux autres langages, le nom d'une variable ne peut pas commencer par un chiffre. Donc remplace tes $1usd par $usd et $1dzd par $dzd 3. La ligne que je t'ai indiquée n'est même pas syntaxiquement valide, et même si elle l'était, elle ne fait absolument pas ce que tu veux. Il faut écrire: $usd = $div / $rate[1] 4. Même avec ça, je ne suis pas sûr que la logique de ton script donne ce que tu veux, mais ça c'est une autre histoire Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
LiFi Posté 2 Mars 2009 Partager Posté 2 Mars 2009 Conseil: Quand on demande de l'aide il faut donner son script comme tu l'as fait mais aussi donner les messages d'erreur, dire ce que tu attends comme résultat et ce que tu obtient, faire tout pour faciliter la tache de ceux qui voudront t'aider. La ligne $1usd = '.$div/$rate[1].' '.EURO.'; veut dire quoi? pourquoi mettre un = ' . ? Jamais vu ça nul part et ça n'a pas de sens. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant