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

Membre WebRankInfo ?

S'inscrire Aide

Intégrer dans ses pages un flux RSS externe

Par , Lundi 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.

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/rss.php");
?>

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

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

Olivier DuffezConsultant indépendant en référencement, Olivier Duffez a travaillé pour les plus grands sites (Doctissimo, FNAC, RueDuCommerce...). Il édite le site WebRankInfo.com qu'il a créé en 2002, devenu la plus grande communauté francophone sur le référencement (+ 200.000 membres et 1,3 million de posts). Il a également créé la société Ranking Metrics, leader des formations emarketing en France (référencement naturel, AdWords, Analytics, réseaux sociaux).

Vous avez aimé cet article ? Partagez-le !

Vous aimez WebRankInfo ? Suivez-nous !

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.

30 commentaires

  1. Julien dit :

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

  2. Térence dit :

    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 ?

  3. Alexis Chatougri dit :

    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.

    =)

  4. Tribal dit :

    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 ?

  5. Gérard dit :

    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

  6. jacky dit :

    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.

  7. olybop dit :

    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 ;)

  8. Xenon dit :

    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 ?

  9. billy.bob dit :

    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.

  10. Alpha dit :

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

  11. Axiom dit :

    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!

  12. kowalski dit :

    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

  13. jerome dit :

    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 !!!

  14. jerome dit :

    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');
    }

  15. Marie-Micheline dit :

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

  16. Marie-Micheline dit :

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

  17. Marc dit :

    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';

  18. EC dit :

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

  19. Taaazzz dit :

    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

  20. nico dit :

    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

  21. steph dit :

    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 .

  22. math dit :

    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

  23. Scorps dit :

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

  24. apsinthos dit :

    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 ???

  25. Luc dit :

    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

  26. flyerawayd dit :

    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.

  27. Homme dit :

    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

  28. soussita dit :

    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

  29. Elisabeth de Texte Faire-Part dit :

    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.

  30. FANTOME dit :

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

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.

Cherchez dans tous les dossiers

Cherchez par mots-clés dans ~2000 articles :

Catégories des dossiers

Consultez les dossiers par thématiques :

Formation référencement et webmarketing

Venez chez Ranking Metrics vous former au référencement, à Google Analytics et aux réseaux sociaux ! Plus de 4000 entreprises sont déjà venues (financement possible par 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.