Lecteur RSS en PHP

Comment afficher un flux RSS avec une simple fonction PHP. L'URL du fichier peut être
- locale, sous la forme: rss.xml, ou
- distante sous la forme: http://www.scriptol.fr/rss.xml.

Il n'y a qu'une seule différence, si le nom de fichier a l'extension ".php" quand il est généré par un CMS ou autre logiciel, localement le fichier est traité par le serveur comme un fichier texte tandis qu'à distance il est traité comme un script. Il n'y a pas de différence si l'extension est ".xml".

Le script est compatible avec:
- RSS 2.0.
- RSS RDF ou RSS 1.0.
En fait le script extraie les balises title, link et description et ignore le format de structure du document.
L'avantage d'utiliser PHP pour afficher un flux RSS est que celui-ci sera visible par les moteurs de recherche.

Structure d'un fichier RSS 2.0

Un flux RSS est constitué d'un canal et d'un ou plusieurs items, correspondant à des articles. Chacun à un titre, une URL et une description. Plus de détails dans la spécification dont le lien est donné plus bas.

<rss version="2.0">
  <channel>
    <title>Scriptol RSS</title>
    <link>http://www.scriptol.fr/rss/</link>
    <description>
      Outils et documents pour RSS.
    </description>
    <item>
      <title>Le lecteur RSS</title>
      <link>http://www.scriptol.fr/rss/lecteur-rssphp</link>
      <description>
        Fonction pour afficher un flux RSS.
      </description>
    </item>
  </channel>
</rss>

Les fonctions de l'API

L'interface comprend deux fonctions:

RSS_Display()

Pour afficher un flux complet avec le canal, les titres liés aux articles et leurs descriptions.

RSS_Links()

Pour afficher seulement une liste de titres qui lient sur les articles.

Code source

Le source contient d'autres fonctions internes:

RSS_Retrieve(url)     // extraie le channel et appelle RSS_Channel.
RSS_Channel(channel)  // extraie les données du channel et appelle RSS_Tags.
RSS_RetrieveLink(url) // appelle RSS_Tags pour chaque item d'un channel.
RSS_Tags(item)        // extraie title, links, description pour un article.

Voir le script rsslib.php.

Afficher ou non la date

La version 2010 ajoute un argument pour ajouter l'affichage de la date.

RSS_Display(url, nombre, true, true);

Si le dernier paramètre est omis, la date n'est pas affichée.

Afficher le lien sur le site ou non

La version 2009 permet en option d'afficher ou non le titre et la description du site. C'est le troisième paramètre de RSS_Display.

Par défaut, il n'est pas affiché. Pour l'afficher, utiliser cette syntaxe:

RSS_Display(url, nombre, true);

Sinon appeler:

RSS_Display(url, nombre);  

ou:

RSS_Display(url);

pour le nombre d'article par défaut, qui est de 15.

Démos

Les démos sont des templates que vous pouvez étudier et utiliser sur votre propre site, selon les termes de la licence Mozilla. Un formulaire permet d'entrer l'URL du flux. Vous pouvez enlever le formulaire et le remplacer par l'URL d'un flux donné. Le flux RSS peut être affiché sur la même page ou sur une autre.

Versions

Les modifications prennent en compte les questions sur les forums français/anglais.

Télécharger

L'archive contient le script et les démos.

Documentation

Licence: Mozilla 1.1. Script par Denis Sureau.

Forum

Lecteur de flux rss en PHP 4

21-01-2008 12:09:54

Dav

Bonjour, Le lecteur rss présenté sur ce site (http://www.scriptol.fr/rss/lecteur-rss.php) fonctionne très bien mais il n'est compatible qu'avec PHP5. J'ai essayé de l'adapter à PHP 4 sans succès. Je galère un peu. Quelqu'un aurait t-il une version compatible sous le coude ? Dav
21-01-2008 13:31:50

webmaster

Il utilise la bibliothèque XML de PHP 5. Avec PHP 4 on peut utiliser les mêmes techniques que pour Sidepress http://www.scriptol.fr/wordpress/sidepress.php.