TUTORIELS 
Générer automatiquement un fichier RSS
Comment générer un fichier RSS pour son site en passant par PHP, Perl ou ASP.  (13 septembre 2002)
 

Introduction
Dans notre introduction au format RSS, nous avons vu qu'un fichier RSS n'est rien de moins qu'une application XML: on peut donc le créer à la main, mais pour les sites plus important, il devient vite nécessaire d'automatiser la création de ce fichier.

Nous allons voir dans cet article des manières simples d'y parvenir, dans les langages les plus courants: PHP, Perl et ASP. Ces techniques sont applicables à des sites statiques et dynamiques. Plutôt que de vous obliger à réinventer la roue en vous proposant des outils trop simplifiés, nous nous baserons quand cela est possible sur des outils disponibles en ligne, en vous indiquant le chemin à suivre pour syndiquer le contenu de votre site.

Utilisation de PHP
Nous allons partir d'une petite classes très simple, easyRSS, créée par le français Philippe Rodier. Cette classe permet aussi de lire un fichier RSS afin de l'afficher sur votre site, comme nous le verrons dans le prochain article...

Cette classe peut très facilement être modifiée pour convenir à vos besoins. D'origine, le fichier RSS crée de nombreuses balises plus ou moins utiles, au format RSS 0.91. Etant donné que les autres spécifications 0.9x de RSS ne font qu'ajouter des balises optionnelles, cette classe opensource peut parfaitement servir de base à des améliorations plus personnelles.

La distribution propose un fichier source très clair, qui vous indique comment, avec seulement quelques lignes de PHP, vous pouvez syndiquer le contenu de votre site. Le script est lui-même très facilement adaptable à un système de base de données: il suffit d'extraire les information et la classe s'occupe de formatter le fichier RSS.

Voici un exemple très simple de l'utilisation de cette classe:

(fichier create-rss.php)
<?php
include('easyRSS.inc.php');

$myrss = new easyRSS();

$myrss -> channel("Titre", "http://www.le-site.com", "Description du site", "fr", "©2002 webmaster", "webmaster@le-site.com");

$myrss -> image("Titre", "http://www.le-site.com/logo.gif", "http://www.le-site.com/", 20, 20, "Description");

$myrss -> add_item("Titre de l'article 1", "http://www.le-site.com/articles.php?id=1");
$myrss -> add_item("Titre de l'article 2", "http://www.le-site.com/articles.php?id=2");
$myrss -> add_item("Titre de l'article 3", "http://www.le-site.com/articles.php?id=3");

$myrss -> textinput("Rechercher", "Rechercher sur le site :", "requete", "http://www.le-site.com/recherche.php");

$myrss -> save("articles.rss");
exit();
?>


Vous pouvez constater que le fichier RSS créé ne correspondrait pas, par exemple, à celui que nous avons donné dans notre article précédent. Il faudrait pour y arriver retoucher le code de la classe selon ses besoins, ce qui ne saurait poser problème pour les utilisateurs avertis tant celle-çi est clairement conçue...

Utilisation de Perl
Perl permet de gérer très simplement des fichiers RSS, grâce à un bon nombre de modules open-source prêts à l'usage. Le plus connu, XML:RSS de Jonathan Eisenzopf, utilise le module XML::Parser de Larry Wall et Clark Cooper pour, tout comme easyRSS en PHP, traduire un fichier RSS en HTML.
Pour la génération de fichier RSS, le code source serait de cette forme:

(fichier create-rss.pl)
use XML::RSS;
my $rss = new XML::RSS (version => '0.91');

$rss->channel(title => 'Titre',
  link => 'http://www.le-site.com',
  language => 'fr',
  description => 'Description du site',
  copyright => '©2002 webmaster'
  webMaster => 'webmaster@le-site.com' );

$rss->image(title => 'Titre',
  url => 'http://www.le-site.com/logo.gif',
  link => 'http://www.le-site.com/',
  width => 20,
  height => 20,
  description => 'Description' );

$rss->add_item(title => "Titre de l'article 1",
  link => "http://www.le-site.com/articles.php?id=1",
  description => 'Description' );

$rss->textinput(title => "Rechercher",
  description => "Rechercher sur le site :",
  name => "requete",
  link => "http://www.le-site.com/recherche.pl" );

$rss->save("articles.rss");


Là encore, il existe d'autres solutions peut-être plus adaptées à tel ou tel usage. Mais dans le monde Perl, XML::RSS fait référence.

Utilisation d'ASP
Entièrement dédié à l'intégration RSS avec ASP, le site ASPRSS propose gratuitement l'ensemble des solutions tant pour générer que pour utiliser des flux RSS. Il va même jusqu'à proposer différentes versions selon le langage utilisé: VBScript, JavaScript, Visual Basic or C#.

Mais le code peut-être réalisé en faisant directement des appels ASP depuis le fichier au format RSS qui sera appellé par les autres sites:

(fichier create-rss.asp)
<?xml version="1.0"?>
<rss version="0.91>
  <channel>
  (les balises d'entête: title, description, language...)
  <%
    response.write "<item>"
    response.write "<title>Titre de l'article 1</title>"
    response.write "<link>http://www.le-site.com/articles.asp?id=</link>"
    response.write "<description>Description</description>"
    response.write "</item>"
  %>
  </channel>
</rss>


Tout ces codes sont très basiques, mais permettent de voir la facilité avec laquelle la syndication d'un contenu peut se faire avec un minimum de travail et de préparation. Les adapter à un SGBD particulier ne requiert que la connaissance nécessaire pour afficher le contenu d'un champ. Ce faisant, le fichier RSS sera toujours mis à jour dès qu'il sera appellé d'un site extèrieur, assurant la propagation immédiate de l'information sur les sites aggrégateurs.

 
[ Xavier BorderieJDNet
 
Accueil | Haut de page