Annonces Google

Vous êtes ici : Dossiers référencement > Webmastering

Intégrer dans ses pages un flux RSS externe

Par , le 28 juin 2004

Dans le cas qui nous intéresse, la syndication de contenu correspond à la mise à disposition par un éditeur de site web d'une sorte de résumé des dernières mises à jour effectuées sur son site, de façon que d'autres éditeurs puissent intégrer ce résumé sur leur site ou le consulter à l'aide d'un logiciel spécifique (appelé "agrégateur" ou lecteur de flux).

L'exemple le plus courant est celui d'un site d'actualités qui propose sous la forme d'un fichier XML la liste des derniers messages d'actualité (titre + introduction + lien vers l'article). Les formats les plus courants sont RSS et Atom. On appelle ça un flux de syndication ou aussi un fil RSS / Atom.

Flux RSS

Objectif du flux XML pour le référencement

Le flux XML permettent d'afficher les titres des derniers articles, avec un lien.
Notez qu'il s'agit d'une intégration complète avec des liens "en dur", à la différence des solutions basées sur un code JavaScript.

Intégration d'un flux RSS dans une page web

Cet article n'aborde pas la création d'un flux RSS (ceci pourra faire l'objet d'un autre article).

Si vous souhaitez afficher de cette façon des liens vers les derniers articles de l'actualité de WebRankInfo (ou de votre site préféré...), il faut utiliser un code qui sache lire le fichier XML situé sur WebRankInfo. Je vous propose d'utiliser un outil en PHP disponible sous licence GPL : il s'agit de MagpieRSS - "a simple RSS integration tool".

Parmi les fonctionnalités de MagpieRSS, citons :

  • support des formats RSS v0.91 et v1.0 (et dans une moindre mesure la v2.0)
  • support du format Atom (testé sur des blogs de Blogger par exemple)
  • interface très simple, orientée objet
  • code accompagné de nombreux commentaires

Pour l'installer, il suffit de copier le répertoire quelque part sur votre site. Dans mon exemple je l'ai copié dans un répertoire nommé magpierss situé à la racine de mon site.

La seule configuration à effectuer se trouve dans le fichier rss_cache.inc dans lequel vous pouvez choisir le répertoire utilisé pour la gestion du cache, et la durée de vie du cache en secondes (si vous mettez 300, le cache sera recréé si le fichier dans le cache date de plus de 300 secondes).

Pour l'utiliser, je vous conseille de créer une fonction nommée FeedParser() qui sera chargée de formater la liste des derniers éléments des flux à lire. De cette façon, si vous souhaitez changer l'aspect, vous n'aurez qu'à le changer à cet endroit. Voici le code de cette fonction, que j'ai écrit dans le fichier feedparser.php stocké à la racine de mon site :

<?php
// inclusion de la classe magpierss
require_once("magpierss/rss_fetch.inc");

function FeedParser($url_feed, $nb_items_affiches=10)
{
  // lecture du fichier distant (flux XML)
  $rss = fetch_rss($url_feed);

  // si la lecture s'est bien passee,
  // on lit les elements
  if (is_array($rss->items))
  {
   // on ne recupere que les elements les + recents
   $items = array_slice($rss->items, 0, $nb_items_affiches);

   // debut de la liste
   // (vous pouvez indiquer un style CSS
   // pour la formater)
   $html = "<ul>n";

   // boucle sur tous les elements
   foreach ($items as $item)
   {
    $html .= "<li>";
    $html .= "<a href="".$item['link']."">".$item['title']."</a>";
    $html .= "</li>n";
   }
   $html .= "</ul>n";
 }

 // retourne le code HTML a inclure dans la page
 return $html;
}
?>

Exemples d'intégration

Pour intégrer une liste à puces contenant les derniers éléments d'un flux XML, il suffit de deux lignes de code.

Par exemple pour intégrer les 10 derniers messages de l'actualité de WebRankInfo, il suffit de mettre ce code sur votre page :

<?php
require_once("feedparser.php");
echo FeedParser("http://www.webrankinfo.com/dossiers/feed");
?>

Si vous souhaitez afficher des liens vers les 5 dernières définitions du Dico du Net, il suffit de mettre ce code sur votre page :

<?php
require_once("feedparser.php");
echo FeedParser("http://www.dicodunet.com/rss.php", 5);
?>

L'URL du fichier XML à utiliser est indiquée en général par un petit logo RSS, Atom, ou XML.

Ressources sur les flux RSS

Source image : Shutterstock (sous licence)

A propos de l'auteur : Olivier Duffez Olivier Duffez sur Google+ Olivier Duffez sur Twitter Olivier Duffez sur Facebook Olivier Duffez sur Pinterest Olivier Duffez sur LinkedIn

Consultant en référencement, Olivier Duffez a travaillé pour les plus grands sites (Doctissimo, FNAC,...). Il édite le site WebRankInfo qu'il a créé en 2002, devenu la + grande communauté francophone sur le SEO (+300.000 membres, 1,5 million de posts). Il est aussi cofondateur de Ranking Metrics, leader des formations webmarketing en France (SEO, AdWords, Analytics, réseaux sociaux) et éditrice de la plateforme MyRankingMetrics (crawler et audit SEO en ligne).

Article (La syndication de contenu : afficher un flux RSS sur son site) publié par WebRankInfo dans la rubrique Webmastering. Si vous souhaitez publier un extrait de cet article sur votre site, assurez-vous de respecter les conditions générales d'utilisation de WebRankInfo.

31 commentaires

  • Julien a dit le

    Sympa la fonction, mais attention au '"' oublié !
    $html .= n";
    $html .= "n";

  • Térence a dit le

    Hello,

    En utilisant votre fonction PHP j'ai un problème avec les caractères sépciaux, sur cette page par exemple : .

    Comment régler ce problème s'il vous plaît ?

  • Alexis Chatougri a dit le

    MERCI MON SEIGNEUR DIEU DE BOUZOUC
    J'avais essayé il y a des mois de faire marcher magpierss sur mon site wordpressé, en suivant les instructions de divers sites. Et puis j'y arrivais pas, et puis j'essayais de bidouiller, et puis j'y arrivais encore pas, et puis je re faisais des recherches, et je re bidouillais, et j'arrivais encore pas. J'étais encore une biquette en RSS et tout ça il y a 6 mois - et j'en suis toujours une menfin - du coup j'ai franchement eu du mal et j'ai fini par abandonner.

    Et puis aujourd'hui je me dis "oh tiens et si je réessayais", et je tombe sur vote site, je suis les instructions, et ça marche nickel.

    Hé ba merci beaucoup et gros bisou.

    =)

  • Tribal a dit le

    Bonjour, je viens de recevoir un mail d'un avocat me poursuivant pour plagiat parce que j'ai affiché le flux rss de google news qui affichait 2 de ces articles du site de sont client. Il prétent que j'ai brimé les droit d'auteur de son client. Pourtant, le flux RSS est simplement un titre et une courte description avec un lien vers son site Web. Tous pour avantagé son classement sur les moteurs de recherche.

    En suite il me demande 200 Euro pis il sèsse les poursuites et il me dis que si je paye pas les 200 E. Ça va me couter plus cher.

    Qu'est-ce que vous en pensez ?

  • Gérard a dit le

    Ne t'inquiète pas trop.
    Il essaie une manoeuvre de "chantage".
    À partir du moment où ton article se contente de citer et que tu as mis en clair les sources, tu ne risque absolument rien, d'autant plus que l'article que tu as écrit était édité sur un site public.
    Bon week-eng.
    Gérard

  • jacky a dit le

    Bonjour Tribal,
    En effet, ne te fais pas de souci pour cet avocat. D'abord, t'a-t-il écrit par courrier ? Qui te dit qu'il est avocat ? Comment désire-t-il être payé ? Par chèque ? Très bien , dans ce cas, demande lui son nom et son adresse.....tu n'obtiendras aucune réponse ! Ce type n'est pas un avocat .
    C'est un escroc qui cherches à se faire du fric! A quel titre te réclame-t-il ce fric? sur quoi se base-t-il pour évaluer le montant de son "indemnité" ?
    N'hésite pas à me contacter si tu as des problèmes.

  • olybop a dit le

    Bonjour, Térence à emis un soucis concernant les caractères spéciaux, Je voulais savoir si une solution a été trouvée.
    Merci bien en tout cas. A part ce soucis ça marche au poil ;)

  • Xenon a dit le

    Et bien moi j'ai beau avoir fait exactement comme l'exemple (dossier à la racine toussa) ca ne fonctionne pas :(
    Il y à quelque chose à activer dans PHP ?

  • billy.bob a dit le

    bonsoir;
    j'ai fais comme indiqué plus haut, mais sur ma page il s'affiche le message suivant :

    Warning: main(feedparser.php) [function.main]: failed to open stream: No such file or directory in essais.php on line 125

    Fatal error: main() [function.require]: Failed opening required 'feedparser.php' (include_path='.:/include/') in essais.php on line 125

    Que dois-je faire ?
    Merci d'avance pour votre aide si précieuse.

  • Alpha a dit le

    Bonjour,
    Je cherche le moyen d'ajouter des images qui sont pourtant presentes sur le flux.
    Avez vous une solution ?

  • Axiom a dit le

    Bonjour à tous,

    je cherche depuis plusieurs heures à modifier l'apparence des liens avec le fichier feedparser.php mais je n'y arrive pô. Si j'ai bien compris, je dois créer un fichier style.css (à moins que je puisse inclure le code directement dans le feeparser.php ?), mais comment (avec quel code) dois-je appeler la feuille de style dans ce fichier feedparser.php? Je seche complètement. Si quelqu'un pouvait poster un feedparser.php et un style.css types ce serait sympa.

    Merci d'avance à tous!

  • kowalski a dit le

    Bonjour,
    cela fonctionne parfaitement mais m'affiche un "?" à la place des lettres avec accent, ai je loupé quelque chose ?, je ne peux pas l' intégrer à mon futur site comme cela.....
    merci

  • jerome a dit le

    Merci pour ce script, j'ai testé la méthode rapide avec actifpub mais j'ai également un pb avec les caractètes accentués (un « ? » à la place des lettres avec accent). Merci au brave et valeureux développeur qui va venir à notre secours !!!

  • jerome a dit le

    Pour le probleme des caractères accentués ("cela fonctionne parfaitement mais m’affiche un « ? » à la place des lettres avec accent"), il faut modifier dans le fichier rss_fetch.inc qui est a la racine du répertoire modpierss la ligne de code de l'encodage:

    Remplacer
    if ( !defined('MAGPIE_OUTPUT_ENCODING') ) {
    define('MAGPIE_OUTPUT_ENCODING', 'ISO-8859-1');
    }
    PAR
    if ( !defined('MAGPIE_OUTPUT_ENCODING') ) {
    define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
    }

  • Marie-Micheline a dit le

    Bonjour
    Je trouve tout ça bien compliqué...je suis encore novice, mais j'ai hâte de maîtriser tout ça.
    Marie-Micheline

  • Marie-Micheline a dit le

    Merci pour les infos...je vais maintenant essayer...
    J'en redonnerai de nouvelles pour vous dire si ça fonctionné.

  • Marc a dit le

    Merci Jerome pour l'UTF-8.

    Quelques bugs que j'ai rectifié aussi dans le fichier rss_parse.inc :

    Remplacer
    $this->feed_version = $attrs['version'];
    PAR
    if (isset ($attrs['version'])) $this->feed_version = $attrs['version'];

    Remplacer
    split
    PAR
    explode

    Remplacer
    if ( isset($attrs['rel']) and $attrs['rel'] == 'alternate' )
    {
    $link_el = 'link';
    }
    else {
    $link_el = 'link_' . $attrs['rel'];
    }

    PAR
    if ( isset($attrs['rel']) and $attrs['rel'] != 'alternate' )
    $link_el = 'link_' . $attrs['rel'];
    else
    $link_el = 'link';

  • EC a dit le

    Merci pour ces bonnes sources, juste un soucis, mon apostrophe est remplacé par des "?"... Je ne trouve pas le problème

  • Taaazzz a dit le

    EC

    la solution à été donné ici un peu plus haut

    dans le fichier rss_fetch.inc tu dois modifier ISO-8859-1 par UTF-8

  • nico a dit le

    Bonjour, j'essaye de trouver une solution au probleme d'affichage des images sur magpierss. sur certains flux rss les liens des images dans le xml sont entier avec http://... d'autres ne comportent pas le nom de domaine ex : \images\images.jpg, donc l'image ne s'affiche pas.

    Savez vous comment je peux déclarer le site du flux.

    je vous donne deux liens ci dessous un qui marche et l'autre qui marche pas:

    - http://www.soleya.fr/index.php?journal1=rugbyramalaune

    - http://www.soleya.fr/index.php?journal1=lequiperugby

    merci d'avance

    nicolas

  • steph a dit le

    bonjour j'utilise ce systeme , mais j'ai une erreur quand je viens pour la premiere fois sur la page ou je recupere le flux :

    Suggestion : Undefined property: MagpieRSS::$etag dans le fichier /var/www/vhosts/monsite/httpdocs/site/magpierss/rss_fetch.inc à la ligne 156

    cette erreur disparait aprés rafraichissement .

  • math a dit le

    J'ai le même soucis que EC,

    et la solution de changer le code iso par utf-8 ne fonctionne pas...
    "juste les apostrophes sont remplacé par des "?"... Je ne trouve pas la solution

  • Scorps a dit le

    Merci pour cette source, elle fonctionne merveilleusement bien avec les quelques modifications suggérées dans ce fil (UTF8, etc.).

  • apsinthos a dit le

    Bonjour, je viens de créer un site et je souhaite insérer des flux RSS externes de différents sites. Je n'arrive pas à trouver la documentation m'indiquant les différentes étapes à suivre. J'ai déjà insérer le module Blog et j'ai vu l'onglet "Flux rss" mais c'est là que ça se complique. existe t'il un tutoriel expliquant les différentes étapes à suivre pas à pas.
    La page dans laquelle je souhaite insérer les flux comprendra plusieurs flux. Je vais donc créer des tableaux dans lesquels je ferais des liens. Mais comment faire en pratique ???

  • Luc a dit le

    Bonjour,

    Pour ceux qui utilisent WordPress, il existe un excellent plugin permettant d'insérer facilement un flux RSS externe dans une page ou un widget : Lexi

    Sinon, j'ai une question : dans quelle mesure les flux RSS externes affichées posent-ils des problèmes de duplicate. Et sont-ils considérés comme des mises à jour régulières de la page où ils sont affichés par Google ? (En résumé, est-ce bénéfique pour le référencement de la page qui récupère et affiche des flux RSS externes ?)
    Merci pour votre éclairage

  • flyerawayd a dit le

    Bonjour,

    J'ai utilisé la méthode avec magpierss 0.51 mais rien ne marche. Le flux RSS de webrankinfo n'est pas affiché, que du blanc sur ma page html test.

    Merci de votre aide.

  • Homme a dit le

    Merci bcp,en 40 minutes j'ai reussi a integré le flux rss dans mon site.Les conseils des uns et des autres de site sont tt a fait apreciable!!!Merci

  • soussita a dit le

    mercii bcpp pour vow conseils il fallait justement changer dans le fichier parse et utiliser un serveur de php pour pouvoir interpréter le code et tout marchera nickel!!!et reste qu'appliquer un style CSS

  • Elisabeth de Texte Faire-Part a dit le

    Merci Olivier, même un article qui date de 8 ans est d'actualité! Plusieurs personnes parlent du déclin du RSS pourtant, pour moi, il s'agit encore de ma façon de choix pour consommer mon information.

    Je ne connaissais pas Magpie avant de lire votre article et de mon côté, j'utilisais RSSPHP qui est gratuit et qui fait un bon travail.

  • FANTOME a dit le

    Bonjour la réponse des caractères remplacé par des "?" pour ActifPub svp ça serait sympa car aucune réponse à était donné

  • samp a dit le

    J'ai également une page blanche
    voici mon adresse : http://www.jeux-pc-gratuit.fr/rss/

Postez un commentaire !

Les champs marqués du signe * sont obligatoires. L'adresse email ne sera pas affichée.

En postant un commentaire, vous acceptez les CGU du site WebRankInfo.

Annonces Google

Catégories des dossiers

Consultez les dossiers par thématiques :

Annonces Google

Formation référencement et webmarketing

Venez chez Ranking Metrics vous former au référencement, à Google AdWords et Analytics ainsi qu'aux réseaux sociaux ! Plus de 4000 entreprises sont déjà venues (Dossier possible OPCA, DIF...).

Préparés et animés par Olivier Duffez (WebRankInfo) et Fabien Faceries (AgentWebRanking), 2 professionnels reconnus dans le domaine, nos modules sur le référencement naturel sont très complets tout en laissant une grande place à l'interactivité pour répondre à toutes les questions des participants.

Pour connaître le plan détaillé de chaque module, le prix, les dates et les lieux, consultez le site de Ranking Metrics (organisme de formation).

Hébergement web

Hébergement web mutualisé et dédié

Pour un bon référencement, il faut un bon hébergeur. Testez Sivit by Nerim, l'hébergeur choisi par Olivier Duffez pour son site WebRankInfo.

A partir de 3€ HT/mois.