Création d'un flux rss dynamique
Histoire d'étoffer un petit peut notre site dynamique, nous allons créer un flux
Nous allons donc créer un nouveau fichier (vide) que l'on va nommer rss.php. Comme pour le sitemap, il faut utiliser une instruction pour modifier le message HTPP:
header("Content-type: application/xml");
Ensuite pour indiquer l'url exacte des pages du site dans le flux rss, on utilise une petite fonction qui récupère le nom de domaine :
function url_actuelle() { return "http://" . $_SERVER["SERVER_NAME"]; } $url = (url_actuelle());
Il nous faut ensuite créer l'entête du flux rss :
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n
<rss version=\"2.0\">\n
<channel>\n
<title>Exemple d'un site dynamique</title>\n
<link>$url</link>\n
<description>Exemple d'un site dynamique.</description>\n
<language>fr</language>\n\n";
Pour le reste, c'est comme pour le sitemap, on va chercher le titre, la description, l'identifiant et la date.
$result = mysql_query("SELECT id, titre, description, date FROM CONTENU ORDER BY id ASC
LIMIT 20"); while($affiche = mysql_fetch_array($result)) { //On convertit la date en français $date = date("d/m/Y",strtotime($affiche['date'])); //On affiche les flux echo '<item>
<title>'.$affiche['titre'].'</title>
<link>'.$url.'/page.php?id='.$affiche['id'].'</link>
<description><![CDATA[Article du '.$date.'<br/>'.$affiche['description'].']]></description>
</item>'; }
Comme vous le savez sans doute, la date est enregistré au format anglais du style (2010/01/25) et par conséquence, n'est pas utilisable pour être inséré au bon format dans la la balise <pubdate>**</pubdate> (Si vous disposez d'une astuce pour transormer une date anglaise au bon format pour l'utisation d'un fichier rss, n'hésitez pas à la poster dans les commentaires
). Qu'à cela ne tienne, nous allons tout de même afficher la date en bon Français dans la description du flux rss ... histoire de...!
strtotime : Permet de transformer un texte anglais en timestamp
$date = date("d/m/Y",strtotime($affiche['date']));
Ainsi une date enregistré au format 2010/01/25 en base de données, va être modifié au format 25/02/2010.
Le fichier rss.php au complet :
<?php // On indique que c'est du xml header("Content-type: application/xml"); //fonction pour recuperer l'url du site function url_actuelle() { return "http://" . $_SERVER["SERVER_NAME"]; } $url = (url_actuelle()); //Entête du flux rss echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n
<rss version=\"2.0\">\n
<channel>\n
<title>Exemple d'un site dynamique</title>\n
<link>$url</link>\n
<description>Exemple d'un site dynamique.</description>\n
<language>fr</language>\n\n"; // on se connecte à la base de données include('connexion_bd.php'); mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe"); mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données du fichier connexion_bd.php.'); //On selectionne les données $result = mysql_query("SELECT id, titre, description, date FROM CONTENU ORDER BY id ASC
LIMIT 20"); while($affiche = mysql_fetch_array($result)) { //On convertit la date en français $date = date("d/m/Y",strtotime($affiche['date'])); //On affiche les flux echo '<item>
<title>'.$affiche['titre'].'</title>
<link>'.$url.'/page.php?id='.$affiche['id'].'</link>
<description><![CDATA[Article du '.$date.'<br/>'.$affiche['description'].']]>
</description>
</item>'; } // Fermeture de la connexion à la base de données mysql_close(); //On ferme le flux rss echo "</channel>\n</rss>"; ?>

Signaler une erreur
Création d'un sitemap dynamique
Protection de l'administration et petit plus
Création d'un moteur de recherches


