Générer un flux RSS

Générer un flux RSS

24 fév | Catégorie: PHP | Rédigé par François | 1810 lectures

Ce tuto va vous apprendre à concevoir un flux RSS à partir de PHP et de MySQL. Ce tuto vous permettra dans une seconde mesure, de vous familiariser avec les ouvertures et les écritures de fichiers avec PHP.

 

 

 

Qu'est-ce qu'un flux RSS?

Un flux RSS, n'est rien d'autre qu'un fichier XML avec des balises standardisées qui permettent à un internaute de connaître les dernières mises à jour de votre site web sans pour autant y aller. Il existe à ce jour plusieurs versions de flux RSS, les plus connues sont RSS 1 et RSS 2 qui diffèrent par rapport à l'ordre des balises de votre fichier XML.

Structure d'un fichier RSS

Comme vous le voyez, la structure est assez simple et compréhensible. Le fichier RSS comportera l'extension .xml puisqu'il s'agit d'un document XML. Par ailleur le format des dates dans un flux est assez complexe, mais nous verrons qu'avec PHP cela ne pose pas de problèmes pour formater cette date.

Etape 1: Générer le flux

Commencez par créer un fichier php, ce sera le seul dont nous aurons besoin. La première étape va consister à créer notre flux dans une variable de type chaîne.

Voici le début de mon script. J'ai choisi un encodage en utf-8, mais vous pouvez aussi bien choisir de l'iso-8859-1, tout dépend de l'encodage de votre base de données et de vos préférences.

Afin de pouvoir travailler rapidement, je vous donne un exemple de table à créer, vous pouvez copiez ce code dans PhpMyAdmin.

Enfin, voici les quelques lignes à écrire au début de votre script pour vous connecter à la base de données (normalement, les identifiants seront corrects si vous travaillez en local).

Notre objectif va maintenant être de parcourir notre table SQL et compléter notre variable $xml.

Pour connaître les données de toutes les actus, nous avons besoin d'une boucle. Cette boucle while éxécute la fonction mysql_fetch_array qui retourne une actualité dans un tableau associatif dont les clés sont les noms des colonnes de notre table. Tant qu'il reste des actualités la boucle passe à l'actualité suivante. J'utilise la foncion stripslashes pour éviter d'avoir les antislashes servant à protéger les simple et double quotes.

Pour inscrire la date dans le format convenu, il faut utiliser dans un premier temps la fonction strtotime. Celle-ci, avec votre date en paramètre, vous retournera son timestamp. Grâce à cette valeur nous pourrons avec la fonction date retourner une date formatée. Pour plus d'infos sur la fonction date et notamment sur les formats possibles, je vous conseille d'aller vous renseigner ici: http://fr3.php.net/manual/fr/function.date.php.

Etape 2: Ecrire dans un fichier

Notre script est quasiment terminé, la dernière étape va consister à inscrire cette chaîne ($xml) dans un document XML. 3 lignes suffisent:

la fonction fopen ouvre un fichier en mémoire, elle prend ici en paramètre le chemin du fichier et le mode d'ouverture (ici w+). w+ signifie que votre fichier est ouvert en lecture et en écriture. Le fichier est automatiquement vidé et si le fichier n'est pas crée il le vide... Elle est pas belle la vie?
La fonction fputs quant à elle, écrit dans le fichier ouvert, le contenu de la variable $xml.
Enfin, la fonction fclose ferme tout simplement le fichier.

Voilà votre petit script de création de flux RSS est terminé.

Creative Commons License
Cette création par Snoupix.com est mise à disposition selon les termes de la licence Creative Commons.
Partager ce tutoriel :
wikio scoopeo fuzz diggfr digg-design blogmemes delicious tapemoi yoolink bluegger pioche

6 Commentaires

gravatar
le 25 février à 10h55 ThibZ Répondre Merci encore pour ce super tuto, je vais finir par avoir un site complet grâce à tout vos petits scripts !
Un système de type blog ne vous tenterai comme tuto pas par hasard? J'ai déjà quelques notions mais pas assez pour faire un système correct de A à Z, et ça m'intéresserai d'essayer un peu tout seul sans dépendre de wordpress avec ces lourdes intégrations de thême.
gravatar
le 25 février à 11h29 François Répondre C'est vrai que ça pourrait être intéressant, j'envisagerais surement d'en faire un... mais par contre en plusieurs parties (au moins 4, pour avoir un système actu,tags,commentaires,recherche) c'est à voir smile
gravatar
le 25 février à 13h23 Stephane Répondre Et moi je proposerai le design du blog (qui est déjà prêt) en tuto.
gravatar
le 25 février à 14h16 ThibZ Répondre Ça serait super !
gravatar
le 04 mai à 06h09 Dakin Quelia Répondre Bonjour,

Je ne suis pas expert mais l'on m'a dit de remplacer les DIE par la fonction trigger_error de php. wink

A bientôt,
gravatar
le 04 mai à 14h44 François Répondre Oui il y'en a qui n'aiment pas trop utiliser le or die pour les connexions à la BDD, à toi de voir:
Un article intéressant sur le sujet:
http://www.alsacreations.com/tuto/lire/676-gestion-erreurs-mysql-php-or-die.html

Requête en cours, veuillez patienter...

Ajouter un commentaire