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:
- ligne 41, dans CDATAEncoding, il faut ajouter 'title' et 'link', sinon les caractères accentués présents dans les titres ou les liens ne seront pas correctement encodés ;
- à la fin du fichier, supprimer la fonction __autoload car votre application possède probablement déjà sa propre fonction __autoload.
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

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:
- il compte le nombre d'utilisateurs qui suivent votre flux et vous offre des statistiques détaillées;
- il permet aux utilisateurs de recevoir vos nouveaux posts par email;
- il peut publier automatiquement vos nouveaux posts sur Twitter.
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.

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" />
Commentaires
Articles similaires
- Obtenir les statistiques d'un projet PHP avec PHP Lines Of Code
- Protection contre la falsification de requête intersite (Cross-Site Request Forgery CSRF)
- Détecter les copier-coller avec PHPCPD
- Documenter correctement son code avec PhpDocumentor
- Créer un document Excel (xls) avec PHP
- Afficher les dates en français
- PHP Code Sniffer
- Microformats et hCard
- Faire connaître son site web
- Evaluer la qualité de code avec PHP Mess Detector
- Créer un bouton "Partager sur Facebook"
- Le standard PEAR
- Protéger un serveur PHP avec Suhosin
- Contrôle précis des sessions PHP
- Convertir un document OpenOffice (.odt) avec PHP
- XSS, et comment s'en protéger
- HTMLPurifier, les tableaux multidimensionnels (nested arrays) et les formulaires
- Protéger les mots de passe avec PHP
- Autoriser la mise en cache de contenu dynamique PHP
- Des captchas avec PEAR
- Utiliser PEAR et PECL derrière un proxy
- Accélérer PHP avec APC
- Utiliser APC comme cache
- Créer une datagrid avec Mootools
- Créer des mots de passe avec PEAR
- Accélérateur web Varnish


