Petit script pour afficher un flux rss externe sur un site

Publié le 24 octobre 2008 par Avi Teboul

Ce matin sbeex un lecteur assidu, m'a demandé de lui confectionner un petit script pour parser un flux rss et en ré-afficher les informations ...

Alors j'en profite pour partager le script ici, ça peut toujours servir à quelqu'un ...

Notez qu'il y a 3 paramètres à configurer :

  • l'url du flux à parser
  • le nombre d'items à afficher
  • le nombre de caractères à afficher

Comme toujours cela peut évoluer, alors discutons-en ...

<?php
/***************************************************************
Paramètres de configuration du script
/**************************************************************/
$flux          =      'http://feeds.feedburner.com/Jarodxxx?format=xml'; // adresse du flux à afficher
$nb_items      =      5; // nombre d'éléments à afficher
$size_texte      =       60; //nombre de caractères à afficher
/***************************************************************/
function TruncText ($text , $size, $charset='utf-8'){
   $text = strip_tags ( html_entity_decode( $text , ENT_COMPAT, $charset ) );
   if ( strlen( $text) + 4 > $size ) {
      $text  = substr ( $text , 0 , $size).' ...' ;
   }  
   return $text;
}
$xml = simplexml_load_file($flux);
echo '<ul">'."\n";
$i = 0;
foreach ( $xml->channel->item as $value){
   if ( $i < $nb_items ){
      echo '<li>
      <a href="'.$value->link.'">'.utf8_decode($value->title).'</a>
         <span>'.utf8_decode(TruncText($value->description, $size_texte )).'</span>
      </li>'."\n";
      echo '<br />'."\n";
   }
$i++;
}
echo '</ul>'."\n";
?>