Accueil | Tutoriaux | PHP | Créer son Flux RSS pour son site avec PHP

Créer son Flux RSS pour son site avec PHP

Envoyer Imprimer PDF
Nous allons voir aujourd'hui comment créer un système de flux Rss facilement à l'aide du PHP. Nous disposerons d'un seul fichier appelé : rss.php. Certain d'entre-vous dirons « Mais qu'est-ce que le rss ? » Et bien, RSS désigne une famille de formats XML utilisés pour la syndication de contenu Web. Ce système est habituellement utilisé pour diffuser les mises à jour de sites dont le contenu change fréquemment, typiquement les sites d'information ou les blogs. L'utilisateur peut s'abonner aux flux, ce qui lui permet de consulter rapidement les dernières mises à jour sans avoir à se rendre sur le site.

Trois formats peuvent être désignés par ces initiales :

  • Rich Site Summary (RSS 0.91)
  • RDF Site Summary (RSS 0.90 et 1.0)
  • Really Simple Syndication (RSS 2.0)
 
CODE :
<?php
    header('content-type: text/xml');
   
    echo '<?xml version="1.0" encoding="iso-8859-1"?>';
    echo '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">';
    echo '<rss version="0.91">';
    echo '<channel>';
    echo '<title>Nom du site</title>';
    echo "<description>Description</description>";
    echo '<link>www.nomdusite.com/</link>';
    echo '<copyright>Copyright du site</copyright>';

    require('connexion.php'); //Connexion à la base de donnée
   
    $donnees_articles = mysql_query("SELECT id,titre FROM table ORDER BY id DESC LIMIT 0,5");

    while($articles = mysql_fetch_array($donnees_articles)){
        $titre = $articles['titre'];
        $titre = htmlspecialchars($titre);
       
        echo "<item>";
        echo "<title>" . $titre . "</title>";
        echo "<link>http://www.monsite.com/mapage-id-" . $articles['id'] . ".html</link>";
        echo "</item>";
    }

    echo "</channel>";
    echo "</rss>";
?>

Regardons maintenant ce code de plus près.

CODE :
<?
    header('content-type: text/xml');

    echo '<?xml version="1.0" encoding="iso-8859-1"?>';
    echo '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">';
    echo '<rss version="0.91">';
?>

Ce bout de code nous permet de dire que la page sera considérée comme étant une page de type xml de version 1.0 .
 
CODE : 
<?
    echo '<rss version="0.91">';
    echo '<channel>';
    echo '<title>Nom du site</title>';
    echo "<description>Description</description>";
    echo '<link>www.nomdusite.com/</link>';
    echo '<copyright>Copyright du site</copyright>';
?>

Ce code nous permet avant tout de dire que nous allons utiliser, dans le fichier interprété en xml, le rss.
Puis nous avons les balises suivantes :

  • title (Le titre de votre flux Rss)
  • description (Description du site)
  • link (Adresse de votre site)
  • copyright (Le copyright de votre site)

La partie de configuration est maintenant terminé, il ne nous reste plus qu'à afficher le contenu à lister.
 
CODE : 
<?
    require('connexion.php'); //Connexion à la base de donnée

    $donnees_articles = mysql_query("SELECT id,titre FROM table ORDER BY id DESC LIMIT 0,5");

    while($articles = mysql_fetch_array($donnees_articles)){
        $titre = $articles['titre'];
        $titre = htmlspecialchars($titre);
       
        echo "<item>";
        echo "<title>" . $titre . "</title>";
        echo "<link>http://www.monsite.com/mapage-id-" . $articles['id'] . ".html</link>";
        echo "</item>";
    }
?>

Voyons maintenant comment lister les 5 dernières news de votre site par exemple.

Attention : Un minimum de connaissance est nécessaire pour la compréhension de la suite.

Grâce au require qui va inclure la page connexion.php nous allons nous connecter à la base de donnée. (Placer dans connexion.php le script de connexion à votre base de donnée). Puis nous commençons notre sélection dans la base de données :

CODE :
<?
    $donnees_articles = mysql_query("SELECT id,titre FROM table ORDER BY id DESC LIMIT 0,5");
    while($articles = mysql_fetch_array($donnees_articles)){
?>
 
Ce script permet tout simplement de séléctionner les informations : id et titre des 5 dernières données de la table : table. J'ai précisé plus haut que quelques connaissances en PHP étaient nécessaires. On continu en créant une variable de retour ($donnees_articles) dans une boucle. Affichons maintenant grâce à la boucle nos 5 dernières nouveautés.
 
CODE :
<?
        $titre = $articles['titre'];
        echo "<item>";
        echo "<title>" . $titre . "</title>";
        echo "<link>http://www.monsite.com/mapage-id-" . $articles['id'] . ".html</link>";
        echo "</item>";
    }
?>

On créé une variable $titre qui contient le titre de la news. La balise représente une case, une puce de la liste. L'on y ajoute les informations suivantes :

  • title (Le titre de la case)
  • link (Le lien de la case)

Puis nous fermons notre boucle grâce au }.

Il ne nous reste plus qu'a fermer le document et le script sera terminé.
 
CODE :
<?
    echo "</channel>";
    echo "</rss>";
?>

Comme je l'ai dit, ce bout de code va fermer notre document xml. Mettre un lien signifiant que le site contient un flux Rss dans la barre d'adresse, il est possible et conseiller d'afficher que votre site contient un flux RSS. Pour cela, il suffit de mettre la ligne suivante entre les balises et :
 
CODE : 
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="rss.php" />
	

Remplacer rss.php par le nom du fichier que vous avez créé contenant le script observé durant cette étape par étape. Si vous avez des questions, remarques ou que vous souhaitez que je rajoute des choses à ce tutoriel n'hésiter pas à y laisser un commentaire.
 

Rétrolien(0)

Adresse URI pour un rétrolien sur cet article

Commentaires (0)

Flux RSS pour les commentaires

Ecrivez un commentaire

Réduire l'éditeur | Agrandir l'éditeur

busy
Mis à jour ( Lundi, 17 Mars 2008 14:50 )  

Syndication

Tag

Requires Flash Player 9 or better.

Publicités


Espace sécurisé



Les plus lus