WEB-d Développement Web

PHP, SQL, HTML5, CSS3, Javascript, Mootools, Référencement, SEO, CMS, e-commerce, Apache, Linux, Ubuntu, ...

Créer et diffuser un flux RSS

Il existe de nombreuses librairies PHP pour lire et utiliser un flux (feed) RSS sur son site web. Il en existe cependant beaucoup moins qui permettent de créer un fichier RSS correct à partir d'une série d'articles ou de news. La plupart des solutions que l'on trouve sur internet consistent à écrire manuellement le code XML correspondant. Ce n'est pas pratique, et mène souvent à des erreurs...

PHP Universal Feed Generator

Il existe heureusement une bonne librairie pour créer un flux RSS : le PHP Universal Feed Generator. Comme on peut le voir sur l'exemple ci-dessous, l'utilisation en est très simple:


require_once "FeedWriter.php";
require_once "FeedItem.php";

$feed = new FeedWriter();
$feed->setTitle('Titre de mon flux');
$feed->setLink('Adresse de mon flux.xml');
$feed->setDescription('Description de mon flux');

// $posts contient tous les articles à ajouter au flux
foreach ($posts as $post) {
    // Pour chaque article, on crée un élément
    $newItem = new FeedItem();
    $newItem->setTitle($post->title);
    $newItem->setLink($post->url);
    $newItem->setDate($post->time_published);
    $newItem->setDescription($post->content);

    // Et on ajoute l'élément au flux...
    $feed->addItem($newItem);
}
$feed->genarateFeed();
 

La version actuelle du fichier FeedWriter.php comporte cependant 2 petits bugs qu'il vous faudra corriger:

Les clients RSS génèrent énormément de trafic car ils vérifient le flux toutes les 30 min environ. Il faudra donc impérativement prévoir un système de cache, pour éviter de recréer entièrement le flux à chaque requête.

Feedburner

Feedburner

Pour réduire le nombre de requêtes, il est également possible d'utiliser Feedburner. Celui-ci va copier votre flux toutes les 30 min, et vous permet d'ajouter sur votre site un lien vers leur copie du flux, réduisant d'autant le trafic sur votre propre serveur. Il offre également d'autres avantages:

Sur votre compte Twitter, il existe également une option qui publie directement vos tweets sur votre page Facebook. Il suffit donc de publier une nouveauté sur site ou blog pour qu'elle se propage automatiquement à Twitter et Facebook!

Découverte automatique

Certains navigateurs, ou certaines extensions, comme RSS Subscription Extension pour Chrome affichent automatiquement une icone dans la barre de navigation lorsqu'un flux RSS est présent dans la page.

Crhome RSS Subscription Extension

Pour indiquer qu'un flux existe, il faut ajouter le lien suivant dans la section "head" de la page:


<link rel="alternate" type="application/rss+xml" title="Mon site.com" href="http://www.mon-site.com/rss.xml" />

Articles similaires