Tout d’abord, si les termes “fichier de syndication” ou “RSS” vous sont peu familiers, vous pouvez consulter le tutoriel RSS, RDF, ATOM et syndication de contenu sur ce site pour en savoir plus.
Après cette lecture, vous saurez qu’un fichier RSS est en fait un fichier au format XML respectant la syntaxe RSS.
Pour consulter cette syntaxe du langage RSS 2.0, allez ici :
http://www.stervinou.com/projets/rss/ , cette traduction française de la norme du RSS 2.0 vous sera précieuse. La version originale en anglais est là :
http://blogs.law.harvard.edu/tech/rss
Ensuite, ne vous affolez pas, j’ai réussi à en faire donc c’est que ce n’est pas trop compliqué !
Le fichier DOIT être écrit (codé) en UTF-8 . Il vous faut donc un logiciel adapté :
Multi-plateformes (Linux, Mac Os X, Windows) : Nvu , logiciel libre et gratuit.
Windows :
Mac Os 9 et X : BBEdit Lite ou complet, gratuit pour la version lite.
Ensuite, comme rien ne vaut un bon exemple, en voici deux :
Fil RSS du site de Sophie commenté pour décrire les balises
Fil RSS assez simple de l’annuaire Ouvaton
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Annuaire non officiel des sites d'Ouvaton</title>
<link>http://lannuaire.ouvaton.org/</link>
<description>Les derniers sites inscrits dans l'annuaire</description>
<language>fr</language>
<category>Annuaire</category>
<image>
<url>http://lannuaire.ouvaton.org/Images/OvtAnn.gif</url>
<title>Annuaire non officiel des sites d'Ouvaton</title>
<link>http://lannuaire.ouvaton.org/</link>
</image>
<item>
<title>Traduction anglais-français de sites et documents</title>
<link>http://www.Traduire-en-Francais.com</link>
<description>Traduction et localisation anglais-français de site internet-web, logiciel informatique, document technique, commercial ou touristique par un traducteur freelance indépendant spécialisé dans ces domaines.</description>
<pubDate>Mon, 30 Aug 2004 12:01:11 GMT</pubDate>
</item>
<item>
<title>* GERY MANUTENTION | TRANSPORTS DECHETS | MANUTENT</title>
<link>http://gerymanut.com/</link>
<description>Gery manutention, drome, rhone-alpes, tout type de transports, dechets DIB et ordures menagers, convoi exceptionnel, manutention</description>
<pubDate>Thu, 02 Sep 2004 10:55:00 GMT</pubDate>
</item>
</channel>
</rss>
Une fois que votre fichier RSS est fait, il faut mieux le valider en utilisant un validateur :
http://rss.scripting.com/
http://www.feedvalidator.org/
Pour que votre fichier RSS ne soit pas considéré comme un simple fichier xml au passage d’un visiteur, vous devez écrire un fichier .htaccess à la racine de votre site qui contiendra cette ligne :
AddType application/rss+xml .rss
Ou ajouter cette ligne à votre .htaccess si vous en avez déjà un.
Et voila, c’est pas plus compliqué que cela.
Ceci dit, on peut continuer à jouer avec RSS et php :
On peut installer sur son site un fabricateur automatique de Flux qui rajoute un item quand il faut.
Voici, par exemple, le script que j’ai fait et qui rajoute un item lorsqu’un nouveau site est inscrit dans l’annuaire :
<?
/* ATTENTION:
Le fichier MonFil.rss DOIT exister avec toutes les entêtes,
ce script ne fait QUE RAJOUTER un item
Les informations ajoutees sont a passer dans des variables : $titre, $url, $presentation (qu'il sera bon de tester pour verifier leur conformation a la norme)
L'entrée ajoutée au fil sera de la forme :
<item>
<title> $titre </title>
<link> $url </link>
<description> $presentation </description>
<pubDate> date du jour formatée </pubDate>
</item>
*/
// configuration du script
$fich="MonFil.rss";
// script, ne pas modifier cette partie
$LesLignes=file($fich);
$Total=count($LesLignes);
//print "$Total<br>";
for ($i = 0; $i <= $Total; $i++)
{
if (strpos($LesLignes[$i],"/channel")!=0)
{
$Ligne=$i-1;
break;
//print "Ligne: $Ligne, suivante: ".strip_tags($LesLignes[$i])."<br>";
}
}
$LesLignes[$Ligne+1]=utf8_encode(" <item>");
$LesLignes[$Ligne+2]=utf8_encode(" <title>".stripslashes($titre)."</title>");
$LesLignes[$Ligne+3]=utf8_encode(" <link>$url</link>");
$LesLignes[$Ligne+4]=utf8_encode(" <description>".stripslashes($presentation)."</description>");
$LesLignes[$Ligne+5]=utf8_encode(" <pubDate>".date("D, d M Y H:i:s ")."GMT</pubDate>");
$LesLignes[$Ligne+6]=utf8_encode(" </item>");
$LesLignes[$Ligne+7]=utf8_encode("");
$LesLignes[$Ligne+8]=utf8_encode(" </channel>");
$LesLignes[$Ligne+9]=utf8_encode(" </rss>");
$Total=count($LesLignes);
//print "$Total<br>";
/* OUVRIR LE FICHIER */
$fp=fopen("$fich","w+");
fseek($fp,0);
/* ECRIRE LE NOUVEL ENREGISTREMENT */
for ($i = 0; $i <= $Total; $i++)
{
$string=Chop($LesLignes[$i])."\n";
fputs($fp,$string);
}
/* FERMER LE FICHIER */
fclose($fp);
?>
Il existe aussi des Editeurs Rss en ligne :
http://www.webreference.com/cgi-bin/perl/rssedit.pl
http://www.webdevtips.com/webdevtips/codegen/rss.shtml
Mais bon, c’est tellement plus rigolo de faire ces trucs tout seul !
Aller, bon flux, bon aggrégateur et tout ce genre de choses.