Articles :: Programmation :: Langages du Web

Afficher des news d’un autre site sur le sien

RSS et PHP sont là automatiser la tâche !

vendredi 5 novembre 2004 par Julien

Sommaire

Niveau : débutant

Le RSS est un format de fichier servant à diffuser des actualités d’un site vers un utilisateur final ou d’un site vers un autre site. Il s’agit d’un format normalisé, un peu comme le célèbre HTML, utilisé par de nombreux sites d’actualités à travers le monde. Une "page" RSS est appelée "feed".

Ce tutoriel vous expliquera comment publier sur votre site Internet les news issues d’un autre site grâce au RSS, au PHP et MagpieRSS.

Pré-requis

Avant de commencer, vérifiez que le site dont vous souhaitez afficher les news vous autorise à faire cela. En cas de doute, contactez son webmaster.

Une connaissance basique du HTML est recommandée. Assurez aussi vous que votre serveur supporte PHP (avec l’extension XML et la fonction "fsockopen" autorisée). Si vous n’êtes pas sûr, demandez à votre hébergeur.

Ensuite, téléchargez MagpieRSS (la dernière version de préférence) et décompressez l’archive.

Téléchargez sur votre serveur, dans le dossier où se trouve la page où vous voulez afficher les news, les fichiers "rss_fetch.inc", "rss_parser.inc", "rss_cache.inc" et "rss_util.inc", ainsi que le dossier "extlib".

Créez un dossier "cache" dans le même dossier. Assurez-vous qu’il soit en lecture/écriture pour votre script PHP. Selon les hébergeurs, c’est automatique ou il faut fixer les droits. [1]

Le script

Nous allons commencer avec un script simple.

Ouvrez votre éditeur HTML favori et collez le code suivant dans le code source (surtout pas en mode WYSIWYG/graphique) à l’endroit où vous souhaitez voir les news s’afficher. Votre fichier devra porter l’extension ".php".

Téléchargez le fichier vers le serveur. Ouvrez votre browser favori et demandez la page ainsi créée. Si tout ce passe bien, les dernières news de MacTouch s’affichent. Si ce n’est pas le cas, vérifiez que vous avez bien suivi les pré-requis.

Décortiquons maintenant les lignes importante du script, sans rentrer dans les détails du PHP.

-  $rss = fetch_rss ("http://syndication.mactouch.com/rss_news.php"); : récupère la feed RSS http://syndication.mactouch.com/rss_news.php (vous trouverez ici la liste de feeds).

-  <?php echo $LIEN; ?>, <?php echo $TITRE; ?> et <?php echo $DESCRIPTION; ?> : "balises" PHP qui affichent le lien de la news, son titre et sa description.

Modifier l’apparence

Pour modifier l’apparence, le plus simple est de créer dans son éditeur HTML en mode graphique un exemple de news telle qu’on souhaiterait l’afficher. C’est à dire mettre en forme un titre avec une description [2] et un lien vers la news complète. Faites tout cela avec du texte arbitraire.

Une fois votre mise en page faite, retournez dans le code source et remplacez vos textes arbitraires par les "balises" <?php echo $TITRE; ?> et <?php echo $DESCRIPTION; ?>, ainsi que le lien par <?php echo $LIEN; ?>.

Placez avant le code correspondant à la news le préfixe :

Et après votre news :

Conclusion

Même s’il vous faut mettre les mains dans le code source de votre page, cela reste simple à mettre en œuvre, pour peu que vous respectiez les consignes ci-dessus. Comme dans toute programmation, le plus important est de ne pas bidouiller sans savoir : si vous laissez les morceaux de code comme indiqué, cela ce passera bien.

Vous pourrez alors afficher nos news ou bien nos derniers articles ou encore n’importe quelle autre feed RSS qui vous intéresse.

[1] Pour fixer les droits avec Cyberduck, cliquez sur le bouton "Infos" ou faites Pomme-I puis cochez toutes les cases dans "Permissions" : vous devez alors voir rwxrwxrwx (777). La procédure doit être plus ou moins similaire avec un autre client FTP.

[2] Vous pouvez omettre la description si vous ne souhaitez avoir qu’une liste des news.

Les anciennes réactions :

  • > Afficher des news d’un autre site sur le sien

    , par Alex131089

    Salut,

    un exemple d’utilisation de MagPie :

    http://lecteur.rss.free.fr/lecteur/ ;-)

    Mais le code n’est pas super pour le moment .. Je l’amméliorerais en temps voulu ^^
    Certain site(surtout des feed avec comme url : monsite.com/rss.php ?1=2&3=4/ )..... ne sont pas encore completements compatibles :(

  • > Afficher des news d’un autre site sur le sien

    , par Julien

    Pour n’afficher que les 5 premières news d’une feed RSS, vous pouvez remplacer la ligne :

       foreach ($rss->items as $item) {
    par :

       for($i=0; $i<5; $i++) {
           $item = $rss->items[$i];
    • > Afficher des news d’un autre site sur le sien

      , par

      je peux dire une bêtise, mais


      $max = if(count($rss)>5)?5:count($rss);

       for($i=0; $i<$max; $i++) {
             $item = $rss->items[$i];

      Me semble plus "propre" :D

      • > Afficher des news d’un autre site sur le sien

        , par Ali Baba

        Enlève ton "if" ;-)

        $max = (count($rss)>5) ?5 :count($rss) ;

         for($i=0 ; $i<$max ; $i++)     $item = $rss->items[$i] ;

    • > Afficher des news d’un autre site sur le sien

      , par rach

      Salut , je suis un jeune technicien en informatique je demande d aide pour ajouter des news Exemple : site eurosport ou euronews dans mon site .
A propos — Site collaboratif édité sous licence GNU FDL [pourquoi ?] — © 2004-08 — Mentions légalesContact
Syndication RSS — Powered by SPIPstockbanddonné


Contenu édité sous licence GNU FDL sans sections invariantes
© MacTouch 2004-08 — Powered by SPIP
http://www.mactouch.com/.