Mon lecteur de flux est très largement basé sur le code http://ghostdogpr.developpez.com/articles/rss/#LIII.
Il permettait (j'ai découvert par la suite que dokuwiki intégrait un lecteur de flux) d'afficher les “5 derniers …” sur la page d'accueil.
function aff_rss($titre,$fichier,$nbtot=5,$iso2utf8=False) { $objets = array("title","link"); if($chaine = @implode("",@file($fichier))) { $tmp = preg_split("/<\/?"."item".">/",$chaine); for($i=1;$i<sizeof($tmp)-1;$i+=2) foreach($objets as $objet) { $tmp2 = preg_split("/<\/?".$objet.">/",$tmp[$i]); $resultat[$i-1][] = @$tmp2[1]; } echo "<strong>$titre</strong><ul>"; $nb = 0; foreach ($resultat as $item) { if (strlen($item[0]) > 43) $itemAff = substr($item[0],0,20).'...'.substr($item[0],-20,20); else $itemAff = $item[0]; if ($iso2utf8) echo utf8_encode('<li><a title="'.$item[0].'" href="'.$item[1].'">'.$itemAff.'</a></li>'); else echo '<li><a title="'.$item[0].'" href="'.$item[1].'">'.$itemAff.'</a></li>'; $nb += 1; if ($nb == $nbtot) break; } echo '</ul>'; } }
$titre
: le titre a afficher un gras au dessus du flux.$fichier
: l'adresse du flux.$nbtot
: (optionnel, par défaut 5) nombre d'item à affiché.$iso2utf8
: (optionnel, par défaut faux) Faut-il convertir le flux d'ISO-8859-1 à UTF-8.