Encodage de flux rss

Résolu
cs_zatt Messages postés 131 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 23 septembre 2011 - 9 janv. 2007 à 22:50
cs_zatt Messages postés 131 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 23 septembre 2011 - 10 janv. 2007 à 10:05
Bonjour,


Je souhaite utiliser un agrégateur rss sur une page php, qui affiche le titre de l'article, la date du post, la description, et un lien vers le contenu complet.


Après avoir bien spécifié le charset en utf-8, je rencontre néanmoins un problème d'affichage lors de l'interprétation de la description, alors que toutes les autres chaines sont correctement affichées.
Les balise html de paragraphe ne sont pas interprêtées elles non plus, et je ne parviens pas à trouver l'erreur 

Ici la bribe de code php concernée (le lien xml en dur contient tous les champs requis).
Merci pour toute aide...
<hr />// Lecture d'un fichier XML
function lit_rss($fichier,$champs)
{
   // Lecture du fichier
   if($chaine = @implode("",@file($fichier)))
   {  
      // Explode sur
      $tmp = preg_split("/<\/?"."item".">/",$chaine);
      // Pour chaque
      for($i=1;$i<sizeof($tmp)-1;$i+=2)
      {
         // Lecture des champs demandés <champ>
         foreach($champs as $champ) 
         {
            $tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]);
             // Ajout au tableau    
            $tmp3[$i-1][] = @$tmp2[1];
         }   
      }
      // Retourne le tableau
      return $tmp3;
   }
}


$rss = lit_rss("http://www.labo-dotnet.com/articles/Csharp/28.xml",array("title","link","description","pubDate"));
// Affichage
foreach($rss as $tab)
{
   echo "
";
      echo"
".$tab[0]."
";
      echo"
posté le ".date("d/m/Y",strtotime($tab[3]))."
";

      echo"
".$tab[2]."
";   // Ligne concernée

      echo"
Lire tout l'article<hr/>";
      echo"
";
}


<hr />

3 réponses

juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
10 janv. 2007 à 01:18
Salut,

C'est normal, ne voulant pas être interpreté comme étant une balise du fichier xml elle as été encodé en
Il faut utiliser html_entity_decode().

echo "
".$tab[2]."
"; // Ligne concernée

echo '
' . html_entity_decode($tab[2], ENT_NOQUOTES, 'UTF-8') . '
';
3
cs_zatt Messages postés 131 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 23 septembre 2011
10 janv. 2007 à 10:03
Ça



marche parfaitement bien.

Je te remercie
0
cs_zatt Messages postés 131 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 23 septembre 2011
10 janv. 2007 à 10:05
oups, copier-coller, désolé
0
Rejoignez-nous