FrancaisAdobe Flex Tutorial
jeux flash gratuit

[Web] - Créer un flux RSS manuel ou automatique avec PHP


Tutorial - Ecrire un flux RSS manuel ou extrait d'une base de données MySQL pour son site et le mettre en forme avec une feuille de transformation XSLT.
flux RSS xml php

Créer un flux RSS pour son site, permet à vos visiteurs de se tenir au courant de l'actualité du site ou des nouveaux articles parus sans avoir à s'inscrire à une newsletter.
Les lecteurs (aggrégateurs) de flux se sont multiplié (NetVibes, Google Reader ...) et permettront à vos visiteurs d'économiser du temps en consultant plusieurs flux RSS en même temps, c'est la syndication.
Le langage utilisé pour le créer est le XML, langage proche du HTML mais plus puissant et strict.

Un autre avantage est celui du référencement.
En effet, vous allez lier ce flux RSS à votre site web et Google va "s'abonner" à ce flux et revenir plus souvent.
A travers ce tutorial, vous apprendrez la syntaxe d'un fichier RSS, comment le créer de manière automatique, comment le lier à votre page et comment l'afficher avec XSLT pour les utilisateurs n'ayant pas d'aggrégateur.







Introduction aux flux RSS

Un flux RSS n'est rien d'autre qu'un fichier texte avec un format particulier, le XML.

Vous pouvez le créer de différentes manières :
  • Manuel : Ecrire le fichier XML à la main
  • Semi-automatique : A partir d'un fichier PHP connécté à une base MySQL qui ira chercher vos news et que vous executerez vous-même
  • Automatique : Le flux RSS est généré chaque fois qu'utilisateur consulte le flux. Cette solution ne sera pas abordée dans ce tutorial car elle est beaucoup trop lourde en terme de requêtes serveur.
Le format XML impose une syntaxe stricte et le flux RSS doit comporter des balises obligatoires pour pouvoir être lu.



Le prélude du flux RSS

Le fichier XML doit être précédé par plusieurs balises, un peu comme le head en HTML qui donneront des infos sur le flux.
Toutes les URL doivent être écrites en absolu et pas en relatif.
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Le titre de votresite</title> 
<link>http://www.votre-site.com URL Absolue</link> 
<description>description du contenu général du flux</description> 
<language>fr</language> 
<copyright>Les droits d'auteur qui apparaitront en bas à droite</copyright> 
<image> 
<title>titre de l'image (équivalent du alt)</title> 
<url>chemin absolu de l'image http://.... (pas plus de 88px de haut)</url> 
<link>http:// lien appelé quand on clique sur l'image</link> 
</image>
<pubDate>Sat, 20 Jan 2007 22:22:22 +0100</pubDate> 


Le format de la date de publication est un format américain, n'oubliez pas de traduire ;).
Pour les jours, Mon, Tue, Wed, Tue, Fri, Sat, Sun.
Pour les mois, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.

Deux règles sont à respecter cependant :
  • Il ne faut pas précéder le numéro du jour d'un zéro (Ne faites pas "05 Aug" mais "5 Aug").
  • Il faut précéder les heures d'un zéro (Ne faîtes pas "7:25:00 GMT" mais "07:25:00 GMT").




Ajouter des informations (items) à son flux

Chaque item représente une news ou un nouvel article de votre site. Ajoutez-en autant que vous voulez (environ 10 conseillé).
<item>
<title>Titre de votre article</title>
<link>http://www.votresite.com/url_de_l_article</link>
<guid isPermaLink="true">Identifiant unique, par précaution, 
remettez l'url de l'article</guid>
<description>Brève description du contenu de l'article</description>
<pubDate>Fri, 20 Jan 2007 22:22:22 +0100</pubDate>
</item>









Générer un fichier RSS statique à partir d'une base MySQL

Vous allez créer un fichier PHP qui va générer votre fichier XML à partir d'une base MySQL.
Chaque fois que vous ajouterez une news, il faudra ouvrir via votre navigateur le fichier maj-rss.php (sur le serveur) pour que celui-ci recrée un fichier XML tenant compte des dernières modifications.

Pour générer ce fichier, il vous faudra au minimum 4 champs :
  • Un Titre, obligatoire
  • Un Lien, obligatoire
  • Une Date, obligatoire, une date au format mktime sera parfaite
  • Le Contenu, non obligatoire


<?php
 $xml = '<?xml version="1.0" encoding="UTF-8"?>';
 $xml .= '<rss version="2.0">'; 
 $xml .= '<channel>'; 
 $xml .= '<title>Titre du flux</title>';
 $xml .= '<link>http://www.monsite.com</link>';
 $xml .= '<description>Description du flux</description>';
 $xml .= '<copyright> MonSite 2005</copyright>';
 $xml .= '<language>fr</language>';
 $xml .= '<image>';
 $xml .= ' <title>Titre du flux</title>';
 $xml .= ' <url>chemin absolu de l'image http://.... (pas plus de 88px de haut)</url>';
 $xml .= ' <link>http://www.monsite.com</link>';
 $xml .= '</image>';
 $today= date("D, d M Y H:i:s +0100");
 //date du jour d'execution du fichier PHP
 $xml .= '<pubDate>'.$today.'</pubDate>';
 require ('../connexion.php'); 
  // Faîtes appel à vos fichier de connection à votre base de donnée MySQL
  // Adaptez ces lignes à votre base de données / noms de table
  $resultat_requete=mysql_query("SELECT * FROM table_blog ORDER BY date DESC limit 0, 10");
  // extraction des 10 dernières nouvelles
  while($lig=mysql_fetch_assoc($resultat_requete)){ 
    $titre=$lig["titre"];
    $adresse=$lig["adresse"];
    $contenu=$lig["contenu"];
    $date=$lig["date"];
    $datephp=date("D, d M Y H:i:s +0100", $date);
    $xml .= '<item>';
    $xml .= '<title>'.$titre.'</title>';
    $xml .= '<link>'.$adresse.'</link>';
    $xml .= '<guid>'.$adresse.'</guid>';
    $xml .= '<pubDate>'.$datephp.'</pubDate>'; 
    $xml .= '<description>'.$contenu.'</description>';
    $xml .= '</item>'; 
  }//fin du while
  $xml .= '</channel>';
  $xml .= '</rss>';
  
  $fp = fopen("fluxrss.xml", 'w+');
  fputs($fp, $xml);
  fclose($fp);
  
  echo 'Export XML effectue !<br /><a href="fluxrss.xml">Voir 
  le fichier</a>';
  ?>




Lier votre flux RSS à votre site

Pour lier votre flux à une page, ajoutez ce code entre les balises head :
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.pixtiz.com/fluxrss.xml" />
Vous verrez apparaître le logo du feed RSS dans la barre d'adresse si vous êtes sous Firefox.
Lier votre flux RSS va améliorer votre référencement et vous permettra d'augmenter sa visibilité.
Vous pouvez aussi faire un lien hypertexte directement vers le fichier xml pour que les visiteurs s'abonnent.



Vérifier que son flux RSS est valide

Il est important de vérifier si le format de votre flux est correct.
S'il n'est pas correct, il ne s'affichera pas bien dans les différents aggrégateurs de flux.
Vous pouvez utiliser le validateur de flux RSS du W3C pour la validation de vos flux RSS.



Donner un look original à son flux grâce à une feuille de transformation XSLT

Si vous accédez à votre flux RSS directement avec Internet Explorer, vous pourrez voir que le fichier XML est affiché sous sa forme abrorescente.
Vous pouvez lier une feuille de style XSLT à votre flux un peu comme on lie une feuille CSS pour le HTML qui va mettre en forme votre fichier XML.

Pour cela, ajoutez cette ligne de code juste après la ligne de l'encodage (à la 2ème ligne donc):
<?xml-stylesheet type="text/xsl" href="http://www.pixtiz.com/updates.xslt" ?>

Pour voir le résultat, vous pouvez essayer d'ouvrir le flux RSS de Pixtiz, jeux flash gratuits, tutoriaux illustrator / CSS / flash

Vous pouvez télécharger ma feuille de style XSLT librement et l'adapter pour votre site.

Vous trouverez sur le site officiel des icones RSS, des icones pour indiquer à vos visiteurs que vous disposez d'un flux RSS.



Si vous avez des problèmes avec la création du flux RSS de votre site, laissez un commentaire sur cet article.




Créer une image de vérification anti-spam pour formulaire >

< Le hack CSS pour des images PNG transparentes sous IE




Commentaires

  • Le 05.10.2007, par acidf

    Bonjours ,
    j'ai une erreur que je n'arrive pas a résoudre

    ligne 29 :
    while($lig=mysql_fetch_assoc($resultat_requete)){

    merci
  • Le 05.10.2007, par ninou

    Salut acidf,
    vérifie que tu as bien des résultats pour ta requete $resultat_requete, pense à bien adapter les noms de champ à ceux de ta base mysql.
  • Le 07.10.2007, par bd71

    Salut, si j'ai bien compris, il faut créer des tables sql. je ne sais pas encore comment créer des tables.
    J'ai un annuaire et je voudrais afficher les 10 derniers sites via le flux rss. Merci d'avance
  • Le 07.10.2007, par ninou

    Salut,

    la création de tables sql est un peu trop complexe pour être expliquée rapidement. Je te conseille de lire quelques tutoriaux et de tester par toi-même ;)
    http://membres.lycos.fr/worldcinemag/mysql/connexion.php
    http://www.lephpfacile.com/cours/11-creation-des-tables-en-sql
  • Le 02.06.2008, par Artefakt

    Salut !

    Je voulais savoir ce qu'il fallait mettre exactement dans le fichier connexion.php ?

    Actuellement j'ai fait un dossier rss sur mon site à l'interview j'ai mis le fichier php "newsrss" avec donc le code php que vous proposez, j'ai aussi mis le fichier connexion.php ou j'ai mis à l'interieur :
    mysql_connect("host", "login", "mot de passe"); // Connexion à MySQL
    mysql_select_db("mabase"); // Sélection de ma base
    ?>

    Mais sa ne fonctionne pas :(

    Si vous pouvez m'aider sa serait sympa :)

    Merci !
Vous devez être inscrit pour pouvoir ajouter un commentaire
bouton inscription jeux
Aide | Contact | Règlement | Plan du Site | tutorial illustrator flash css php