Forum dédié au moteur de recherche et aux techniques d'optimisation par #taggle
Vous n'�tes pas identifi�.
Quelqu'un aurait une idée pour parser ce genre de fichier ?
http://fr.old.finance.yahoo.com/d/quotes.csv?s=USDEUR=X&f=snl1d1t1c1ohgv&e=.csv
Je voudrais simplement afficher un truc de ce genre :
1 € = 1,27 $
Sinon... si vous connaissez un script php qui m'affiche le même résultat à partir d'un flux de taux de change... je suis preneur
Hors ligne
Bah un début de réponse ...
J'avais installé le script ci dessous sur un site qui n'est plus en ligne. L'exemple ci-dessous avait pour but d'afficher un prix en euros et un prix en francs suisse ... Il te faudra sans doute faire quelques bidouillages, mais rien de bien méchant je pense
<? // Currency Converter For Websites // Converts Great British Pounds into Euro's and US Dollars // ©2004 Daniel Brown www.gmtt.co.uk /* This converts Dollars and Euros into British Pounds Sterling. The array type stores the currency symbol for output the variable money contains an url from which the currency amount will be extracted. You can change the value to be converted and the currencys to convert from and to in here We then parse the results and output the values at the bottom. To convert from euro to dollars all you have to do is change one of the urls, for example: $money[0]=file('http://quote.yahoo.com/m5?a=1.99&t=USD&s=EUR'); */ $type = array( "€", "$"); $money[0]=file('http://quote.yahoo.com/m5?a=1&s=CHF&t=EUR&c=0'); // set the value in the url (a=1.99) for($i=0; $i<sizeof($money); $i++) { $money[$i] = join("",$money[$i]); $money[$i] = ereg_replace(".*<table border=1 cellpadding=2 cellspacing=0>",'',$money[$i]); $money[$i] = ereg_replace("</table>.*",'',$money[$i]); $money[$i] = ereg_replace("</b>.*",'',$money[$i]); $money[$i] = ereg_replace(".*<b>",'',$money[$i]); // echo "".$type[$i]." ".$money[$i]." "; $change = $money[$i]; } ?> <?php if ($row_liste_biens['prix']>0) {$prix22 = number_format($row_liste_biens['prix'],0,',','\''); echo $prix22 ;} else { echo "Nous contacter" ;} ?> <?php if ($row_liste_biens['prix']>0) { echo ".- CHF" ; } else { echo " " ;} ?>
@
Hors ligne
Marche pas
Peut être que Yahoo à protéger le flux... le seul message que j'ai sur la page c'est "nous contacter"
Hors ligne
ce flux peut être intéressant, après faut voir si c'est pas celui d'aujourd'hui seulement
http://www.bank-banque-canada.ca/databa … t/2663.xml
Hors ligne
Normal ...
Juste pour être clair :
- As tu déjà construit ta requète pour afficher le prix ?
- Ta requète php doit venir avant le code php de conversion.
- Tu dois bien sûr remplacer $row_liste_biens['prix'] par le nom de ta variablecorrespondante (ton prix par défaut) extraite depuis ta propre base.
@
Derni�re modification par @lexandre (23-05-2006 13:36:10)
Hors ligne
Yeca... ton lien ne foctionne pas... c'est peut-être un fichier qui provient d'un cache réactualisé fréquemment.
Alexandre... j'ai pas de requêtes à formuler depuis une bdd. Tu ne m'as pas compris. Je veux simplement affiché le cours du jour d'une monnaie à la suite d'une ligne du genre :
Monnaie : Real - 1 € = 2,40 Real
Comme sur mes pages voyages comme celle-là où j'ai un bouton pour voir le cours du jour : http://www.americas-fr.com/voyages/voyage-bresil.html
Hors ligne
Dans le csv que tu as donné ça donne :
USDEUR=X;USD to EUR;0,7782;5/23/2006;17h55;N/A;N/A;N/A;N/A;N/A
pour récupérer le 0,7782
il faut faire :
<?php
$csv = trim(@implode('', file(http://url.com)));
$table = explode(';',$csv);
echo $table[2];
?>
Hors ligne
Pas compris
C'est quoi le code complet ? car je vois pas comment placer cette url de barbarbe :
http://fr.old.finance.yahoo.com/d/quotes.csv?s=USDEUR=X&f=snl1d1t1c1ohgv&e=.csv
et ton echo... il affiche une table qui sort d'où ?
Hors ligne
function recup_devise ($code, $base = 'EUR') { // on met ce que l'on veut à la aplce e $base $page = file('http://www.oanda.com/convert/fxdaily?value=1&redirected=1&exch=' . $code . '&format=CSV&dest=Get+Table&sel_list=' . $base); $match = array(); preg_match('/(.+),(\w{3}),([0-9.]+),([0-9.]+)/i', implode('', $page), $match); if (sizeof($match) > 0) { return $match[3]; } else { return false; } }
donc tu fais
$taux = recup_devise('USD');
et voila
pour www.xe.net remplaces
$page = file('http://www.oanda.com/convert/fxdaily?value=1&redirected=1&exch=' . $code . '&format=CSV&dest=Get+Table&sel_list=' . $base); $match = array(); preg_match('/(.+),(\w{3}),([0-9.]+),([0-9.]+)/i', implode('', $page), $match); if (sizeof($match) > 0) { return $match[3]; } else { return false; }
par
$page = file('http://www.xe.net/ucc/convert.cgi?Amount=1&From=' . $from . '&To=' . $to); $match = array(); preg_match('/[0-9.]+\s*' . $from . '\s*=\s*([0-9.]+)\s*' . $to . '/', implode('', $page), $match); if (sizeof($match) > 0) { return $match[1]; } else { return false; }
j'ai pas de mérite pour le preg match, je l'ai pompé sur une de mes boutiques par contre je te conseille si ça doit être automatique de faire le test sur 2 serveurs, car si le premier est en panne c bon d'avoir le second qui te donne un résultat
edit : avais pas vu la méthode au dessus, mais làc complet
Derni�re modification par Toucouleur (23-05-2006 18:18:08)
Hors ligne
Americas a �crit:
Pas compris
C'est quoi le code complet ? car je vois pas comment placer cette url de barbarbe :Code:
http://fr.old.finance.yahoo.com/d/quotes.csv?s=USDEUR=X&f=snl1d1t1c1ohgv&e=.csvet ton echo... il affiche une table qui sort d'où ?
Il est complet le code l'url tu la mets à la place de url.com
en faite explode sert à mettre dans un tableau (ici nommé $table) les données entre chaque ";"
Hors ligne
Rottman... c'est ce que j'ai fait
Page blanche
Toucouleur... pas mal aussi... sur le papier... car j'ai pas compris comment placer ton " $taux = recup_devise('USD'); " pour faire apparaitre les chiffres
Faut vraiment que je me mette au vert pendant un mois avec un bon bouquin de php moi
Hors ligne
marche très bien chez moi
tu as peut etre oublié les guillemets :
<?php
$csv = trim(@implode('', file('http://fr.old.finance.yahoo.com/d/quotes.csv?s=USDEUR=X&f=snl1d1t1c1ohgv&e=.csv')));
$table = explode(';',$csv);
echo $table[2];
?>
Hors ligne
oui... c'était ça... les guillemets
T'es super Rottman !
C'est génial
Arrêtes de perdre ton temps dans les bouquins... t'es plus utile ici
Hors ligne
[HS pour Rottman]
Un conseil, programme tes révisions aux heures des épreuves. Tu auras pris l'habitude de l'effort et de la concentration pour le jour J à l'heure H.
Le bac, c'est vraiment un palier qui te permettra d'acceder à plein de formations, maintenant ou beaucoup plus tard. Ca vaut vraiment le coup de t'arracher.
[HS pour Rottman/]
Derni�re modification par MagicYoyo (24-05-2006 07:38:09)
Hors ligne