Traitement feed XML et caractères accentués

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


lothar
WRInaute accro
WRInaute accro
 
Messages: 1524
Inscription: Sam Juil 12, 2003 11:42

Traitement feed XML et caractères accentués

Message le Jeu Sep 06, 2007 20:34

Bonjour,

j'utilise le script suivant pour afficher les derniers posts issus d'un feed:

Code: Tout sélectionner
<?php
$fichier_xml = "http://actualites.prepa-hec.org/feed/";
$nombre_limite = 7;
$raw="";$file = fopen($fichier_xml,"r");
if ($file) {    while (!feof($file)) $raw .= fread($file,32000);   
fclose( $file );   
if(eregi("<item>(.*)</item>",$raw,$rawitems)){       
$items = explode("<item>", $rawitems[0]);       
$nb = count($items);       
$maximum = (($nb-1) < $nombre_limite) ? ($nb-1) :
$nombre_limite;        for ($i=0;$i<$maximum;$i++) {           
eregi("<title>(.*)</title>",$items[$i+1], $title);           
eregi("<link>(.*)</link>",$items[$i+1], $url);                       
echo "<li><a href=\"".$url[1]."\" target=\"_blank\">".$title[1]."</a></li>";           
}       
}   
}?>


Seul problème, les caractères accentués dans les titres ne s'affichent pas ou mal.

Savez-vous comment résoudre ce problème ?

Merci d'avance

theJB
WRInaute impliqué
WRInaute impliqué
 
Messages: 410
Inscription: Ven Avr 07, 2006 21:42

Message le Jeu Sep 06, 2007 21:26

utf8_decode?


lothar
WRInaute accro
WRInaute accro
 
Messages: 1524
Inscription: Sam Juil 12, 2003 11:42

Message le Jeu Sep 06, 2007 21:47

Peux-tu détailler ?

(mes compétences s'arrêtent au changement d'url du feed :/ )

theJB
WRInaute impliqué
WRInaute impliqué
 
Messages: 410
Inscription: Ven Avr 07, 2006 21:42

Message le Jeu Sep 06, 2007 22:19

ok j'ai eu la même merdouille.

Les caractères d'un flux (ou d'une page) sont codés soit en utf8 soit en iso.

Si ton fichier php qui prend le feed est en iso et que le feed est en utf8 alors tous les caractères spéciaux sont daubés.

idem si php en utf8 et feed en iso

utf8_encode prend de l'iso et le met en utf8
utf8_encode prend de l'utf8 et le met en iso

Là tu as un pb de caractère spécial, soit ton php est en utf8 et ton feed en iso, dans ce cas tu fais un utf8_encode sur le contenu du feed, soit ton php est en iso et ton feed est en utf8 et là tu fais donc un utf8_decode

En gros tu fais l'un et l'autre et tu regardes lequel marche.

PS. c'est une horreur ce truc quand on connait pas!!

meluesine
Nouveau WRInaute
 
Messages: 10
Inscription: Ven Mai 15, 2009 10:08

Re: Traitement feed XML et caractères accentués

Message le Ven Aoû 07, 2009 14:08

Je déterre ce sujet pour remercier theJB car après avoir passer plus d'une heure à chercher sur le web, sa solution s'avère être la bonne pour le problème qui se posait à moi. En effet, j'ai voulu utiliser le tutoriel sur la création de flux RSS utilisant une classe php5 que j'ai trouvé sur un autre site. J'ai adapté le script à mon projet personnel mais je n'arrivais pas à afficher correctement les accents du titre et de la description du flux lui-même et voilà le bidouillage par lequel j'ai résolu mon problème!
Code: Tout sélectionner
   $titreutf8=utf8_decode("Flux RSS des actualités");
           $descriptionutf8=utf8_decode('Les dernières actualités directement par flux RSS');
      // Création des entêtes du flux RSS
      $oRssFeed = new RSSFeed('iso-8859-15');
      $oRssFeed->setProtectString(true);
      $oRssFeed->setTitle($titreutf8);
      $oRssFeed->setDescription($descriptionutf8);


RSSFeed est en iso-8859-15 car c'est comme cela que sont codées les données de ma bdd.

Donc un grand merci à theJB :)


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


cron