| | Goretex | Posté le 20/03/2007 @ 18:07 | Petit astucien
801 Messages
| Salut,
Je souhaite intégrer sur mon site le flux rss d'un autre site. J'utilise une include pour l'afficher, et voici le script (trouver sur ce forum) pour récupérer le flux : [code] <? /*---------------------------------------- Options /// MODIFIER /// ----------------------------------------*/ $max_news = 10; // Nombre de news $adresse_flux = "http://www.ffgolf.org/rss.aspx"; ?> <? /*---------------------------------------- Lire le flux rss /// NE PAS MODIFIER /// ----------------------------------------*/ function lit_xml($fichier,$item,$champs) { // on lit le fichier if($chaine = @implode("",@file($fichier))) { // on explode sur <item> $tmp = preg_split("/<\/?".$item.">/",$chaine); // pour chaque <item> for($i=1;$i<sizeof($tmp)-1;$i+=2) // on lit les champs demandés <champ> foreach($champs as $champ) { $tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]); // on ajoute au tableau $tmp3[$i-1][] = @$tmp2[1]; } // et on retourne le tableau return $tmp3; } } ?> <?php $xml = lit_xml($adresse_flux,"item",array("title","link","pubDate")); // et on affiche... $i=0; foreach($xml as $row) { if ($i >= $max_news) break;
$date = date("d/m",strtotime($row[2])); $class = ($date != date ("d/m")) ? "date" : "date_t"; echo "<br />" ."<span class=\"".$class."\">[".$date."]</span> " ."<a target=\"_blank\" class=\"class4\" href='".$row[1]."'>".$row[0]."</a>" ; $i++; } ?> [/code]
Résultat, tout s'affiche comme je le souhaite sauf les caractères spéciaux... voici ce que ça donne :
 Bon, en prenant deux minutes, on arrive à déchiffrer, mais dans l'idéal, j'aimerai que soit normal !
Je me suis dit que peut être, c'était de la "faute" du webmaster du site proposant ce flux qui aurait eu la fainéantise d'écrire ces caractères correctement (des [code]"è"[/code] pour les "è"...etc).
Ou alors, ça vient peut être du "DOCTYPE" de leur site et du mien...
Bref, je sais pas... Donc, avez - vous une idée du pourquoi du comment ??? Ou peut - être même une solution ???
Mille merci.
| | |
| |
| Publicité |
|
| | Malcolm | Posté le 20/03/2007 à 19:23 | Astucien
7299 Messages
| le RSS est en UTF 8 et ton site est en iso 8859-1 ? | | | | | Goretex | Posté le 21/03/2007 à 10:47 | Petit astucien
801 Messages
| Salut,
Malcolm a écrit :
le RSS est en UTF 8 et ton site est en iso 8859-1 ?
Merci Malcolm pour ta réponse (qui est une question...). Et oui...c'est exactement ceci. Alors j'imagine déjà la solution, c'est changer mon "charset" ?
Je veux bien... par contre cela aura-til une incidence sur l'affichage des autres pages de mon site ??? (A noter que, presque tous mes "caractères spéciaux", sont écrits en HTML) Et sinon, ne serait t-il pas possible d'indiquer un "charset" différent de mon site juste sur un petit bout de page ???
Merci pour vos réponses. Modifié par Goretex le 21/03/2007 10:48 | | | | | Malcolm | Posté le 21/03/2007 à 11:48 | Astucien
7299 Messages
| bin tu le fais en page dédiée ... Laquelle aura le charset correspondant (et cela n'ira pas modifier le reste de ton site) | | | | | Goretex | Posté le 21/03/2007 à 12:13 | Petit astucien
801 Messages
| Salut,
Malcolm a écrit :
bin tu le fais en page dédiée ... Laquelle aura le charset correspondant (et cela n'ira pas modifier le reste de ton site)
Le truc c'est que je tiens vraiment à ce que cela soit "inclus" dans ma page d'accueil...
J'ai essayé de changer le charset de mon site en UTF-8, c'est cool, le flux rss s'affiche correctement, par contre certains caractères de mon site sont remplacés par des carrés (normal, certains caractères ne sont pas écrits en html) et pour le coup, cela ne serait pas trop long pour tout revoir. Donc au pire, je le change définitivement...
Mais du coup, il vaut mieux utiliser ISO ??? ou UTF ???
De plus, imaginons que je souhaite récupérer plusieurs flux et tous les affichés sur la même page...avec bien sûr un charset différent à chaque fois... Il n'y aurait pas de solutions pour que tous soit affichés correctement ???
Modifié par Goretex le 21/03/2007 12:13 | | | | | Malcolm | Posté le 21/03/2007 à 13:44 | Astucien
7299 Messages
| soit c'est le flux XML que tu passes en ISO, soit ta page en UTF 8. Si ce n'est *que*pour une page, j'opterais pour cette dernière solution. entre l'iso et l'utf 8, je ne saurais pas te dire, il n'y a pas de règle absolue. l'UTF8 est censé résoudre les problèmes liés aux spécificités des langues (caractères accentués, n tilde, le truc "beta" des allemands, etc.) en proposant un format universel de jeu de caractères. Mais windows est en 1252, et la plupart des programmes en latin-1 (8859-1) ou en latin-9 (8859-15), ce dernier ayant comme différences avec son prédécesseur l'insertion de sigles tels que l'euro ou encore de caractères comme l'oe lié par exemple dans coeur/oesophage. | | | | | Goretex | Posté le 21/03/2007 à 14:29 | Petit astucien
801 Messages
| Salut,
Malcolm a écrit :
soit c'est le flux XML que tu passes en ISO, soit ta page en UTF 8. Si ce n'est *que*pour une page, j'opterais pour cette dernière solution.(...)
Je ne peux ni l'un, ni l'autre ! Déjà, le script qui récupère le flux dans mon post original, est appelé par une include dans ma page d'accueil, donc même si je rajoute ceci : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" /> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> ***script pour récupérer flux**** </body> </html>
dans la page "php" de mon script, cela ne change rien et en plus ma page d'accueil générée en html par le serveur, ressemble à ça : <html><head></head><body><html><head></head><body></body></html></body></html> !!!
Et puis, ce flux appartient à un autre site, donc ça m'étonnerait qu'il accepte de changer son charset juste pour moi !!!
Ensuite, je ne peux pas non plus (enfin si je pourrai, mais c'est embêtant...), changer le charset juste pour ma page d'accueil, car pareil, le "doctype", le "charset", les balises "meta"... se trouve dans un fichier "top" que j'appelle par "includes" dans toutes mes pages...
En conclusion, sauf si je n'ai pas bien compris un truc, la seule solution qu'il me reste c'est d'adapter mon site au flux et tout mettre en "UTF-8" ??? | | | | | Malcolm | Posté le 21/03/2007 à 15:50 | Astucien
7299 Messages
| non, je voulais dire de récupérer le contenu du flux, et celui-là de le convertir en ISO 8859-1. Mais je ne sais pas de quelle nature il est, et cela sous entend un traitement spécifique (pour ne pas dénaturer les liens ...) Sinon pour ton template de site, si tu le génères en PHP, tu peux bien faire une condition pour une unique page dans le charset ? | | | | | Goretex | Posté le 21/03/2007 à 16:06 | Petit astucien
801 Messages
| Salut,
Malcolm a écrit :
non, je voulais dire de récupérer le contenu du flux, et celui-là de le convertir en ISO 8859-1. Mais je ne sais pas de quelle nature il est, et cela sous entend un traitement spécifique (pour ne pas dénaturer les liens ...) Sinon pour ton template de site, si tu le génères en PHP, tu peux bien faire une condition pour une unique page dans le charset ?
En fait, et par fainéantise , j'ai changé le charset de mon site en UTF-8 (de toutes façons, c'est quasiment pareil, non ???). Cela m'a demandé que quelques minutes, avec ce bon vieux Dreamweaver, pour corriger les caractères qui ne s'affichaient pas correctement.
En plus, je ne suis pas capable d'écrire des conditions en php, je les comprends, mais les créer, j'ai pas le niveau ! J'ai donc choisi la solution la plus facile...
Moult merci Malcolm de ton aide toujours précieuse. @ + Jcoutsit ---------------SUJET RESOLU--------------------- | | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|