« Le bonheur est une question d'habitude »

Le blog d'Olivier FAURAX

Créer son fil RSS

Ajouté le mardi 25 avril 2006 à 21h55 / informatique web

J'ai déjà écrit un billet sur l'utilisation d'un fil RSS.

Alexis, un ami, m'a demandé comment il pourrait récupérer efficacement la liste des titres des musiques de RadioFG.
À partir de cet exemple, je vais montrer comment créer un fil RSS.

Format du fil RSS

Nous allons tout d'abord réaliser un flux minimal qui suit la spécification RSS 2.0. Le RSS est un format XML, c'est dont très simple à manipuler et à comprendre.

La racine doit s'appeler "rss", avoir un attribut "version" avec la valeur "2.0" et contenir un unique élément "channel".
La balise "channel" a un titre ("title"), un lien ("link") et une description ("description").
Voici un fichier RSS minimal :

<?xml version="1.0" ?>
<rss version="2.0">
<channel>
<title>TITRE</title>
<link>http://www.monsite.fr/</link>
<description>DESCRIPTION</description>
</channel>
</rss>

Il faut maintenant ajouter les éléments ("item") dans la balise "channel". Ces éléments contiennent usuellement un titre, un lien et une description. Ils sont optionnels, mais on doit fournir une description ou un titre.
Ce qui nous donne :

<?xml version="1.0" ?>
<rss version="2.0">
<channel>
<title>TITRE</title>
<link>http://www.monsite.fr/</link>
<description>DESCRIPTION</description>

<item>
<title>TITRE 1</title>
<link>http://www.monsite.fr/lien1.html</link>
<description>DESCRIPTION 1</description>
</item>

<item>
<title>TITRE 2</title>
<link>http://www.monsite.fr/lien2.html</link>
<description>DESCRIPTION 2</description>
</item>

</channel>
</rss>

Créer le fil RSS de RadioFG

RadioFG fournit 2 accès à leur liste de musique soit au format HTML (http://www.radiofg.com/rcs/), soit au format XML (http://www.radiofg.com/rcs/XMLSongs.xml).
J'aurais pu utiliser le format XML et le transformer en RSS en utilisant une transformation XSLT (XSLT sert à transformer du XML vers un autre XML, par exemple RSS).
Cependant, l'utilisation de la version HTML est plus simple.

La version HTML est facile à manipuler avec des expressions régulières.
Étant donné le peu d'informations à fournir, je vais tout mettre dans le titre.
Voici le code PHP5 :

<?php
header('Content-type:text/xml');
echo '<?xml version="1.0" encoding="iso-8859-1" ?>';
?>
<rss version="2.0">
<channel>
<title>Les titres de RadioFG</title>
<link>http://www.radiofg.com/rcs/</link>
<description>Les titres de RadioFG, par Olivier FAURAX</description>

<?php
$lignes = file_get_contents('http://www.radiofg.com/rcs/');

// On reconnait le  motif <li>HEURE - <b>TITRE</b> (COMPOSITEUR)</li>
preg_match_all('|<li>([^ ]+) - <b>(.+)</b> \((.+)\)</li>|',$lignes,$matches);

for($i=0; $matches[0][$i]; $i++)
echo '<item><title>'.$matches[1][$i].' - '.$matches[2][$i].' ('.$matches[3][$i].')</title></item>';
?>

</channel>
</rss>

Et voilà.
Les premières lignes indiquent que le format utilisé est du XML, en passant les problèmes de conflit XML/PHP (quand le '<?' de la déclaration XML est interprété comme le début d'un bloc PHP).
Ensuite, il y a l'entête fixe qui ne change pas, puis on récupère le fichier HTML et on cherche le motif contenant les informations.
Finalement, on ajoute les 'item' avec le titre contenant les informations.

Pour améliorer, on peut ajouter des balises optionnelles comme le TTL (Time To Live) pour indiquer au bout de combien de temps le flux doit être actualisé (ex : chaque minute).

Commentaires (fil RSS RSS) :

Gravatar de Pirate# Pirate, le mercredi 10 février 2010 à 21h00 :
A ben c'est plus simple avec des explications détaillées
 :
 :(non-publié, utilisé pour le gravatar)
 :
 :
Commentaire :

Merci d'utiliser un français (ou espéranto) correct. Les liens deviennent cliquables.
Vérification anti-spam :
En quelle année a été publié cet article ? / Jaro de tiu artikolo?

À propos de l'auteur

photo Olivier FAURAX Olivier FAURAX

D'un naturel joyeux, positif et curieux, je m'intéresse à beaucoup de choses parmi lesquels la salsa, l'espéranto, la plongée mais surtout l'informatique, le web et Linux (Mandriva).

Même si j'aime programmer, je m'intéresse également aux aspects d'ergonomie, de design et de marketing.

Je suis actuellement développeur firmware chez Neotion. Pour savoir comment j'en suis arrivé là, il y a mon CV.

M'écrire : olivier+blog@faurax.fr

Temps réel (enfin presque)

Retrouvez-moi sur Facebook, Friendfeed, Identi.ca et Twitter.

Catégories

S'abonner / Rechercher

S'abonner par RSS logo RSS
S'abonner par courriel :

Rechercher sur ce blog :

Contact

Je lis & je lie

Archives

Archives du blog

Infos & trucs de couleurs

Geo Visitors Map
Validation HTML Validation CSS
spampoison
Creative Commons License

Carte de visite

photo Olivier FAURAX Olivier FAURAX
Téléphone : 0681651140
Courriel :
Jabber : ofaurax@jabber.fr Statut Jabber

Cette hCard sémantique a été créée avec le hCard creator.

 
  Olivier FAURAX