| Génération d'un flux RSS en PHP
| | Langage : PHP / MYSQL / XML Détails : Créer en php son propre flux RSS dynamique | Le principe ?
Vous avez surement déjà vu sur le net le terme RSS ( y compris sur ce site ). Alors que signifie ce petit logo orange ? On appelle flux RSS un fichier qui contient les derniers contenus publiés, généralement les news. Il utilise la technologie XML pour organisée les données. Les données qui sont propagées peuvent êtres lues par quiconque via un agrégateur ou un lecteur RSS. Elles peuvent même être affichés sur un autre site.
Comment est structuré un fils RSS ?
Pour que tout le monde arrivent à lire votre flux RSS vous devez le structurer suivant une norme. Ici je vais vous présenter la norme RSS 2.0.
Voici un exemple simple :
<?xml version="1.0" encoding="iso-8859-1" ?> <rss version="2.0"> <!-- balise rss avec son numero de version --> <channel> <!-- la balise unique channel qui defini un flux--> <title>Titre du flux RSS</title> <link>http://www.exemple.com</link> <description>Description du flux RSS</description>
<!-- les balises item définissent une news --> <item> <title>Titre de la news</title> <link>http://www.exemple.com/mesnews.php?id=1</link> <author>Auteur</author> <description>Description de la news</description> <pubDate>Mon, 19 Dec 2005 12:00:00 GMT</pubDate> </item> . . . Listé ici tout les news de votre flux.
</channel> </rss>
|
Remarque : Pour fonctionner votre fichier doit avoir obligatoirement une entête du type XML (<?xml version="1.0" encoding="iso-8859-1" ?>)
Quel sont les différents éléments que je peux diffuser ?
CHANNEL
title > Titre du channel link > URL du site contenant le channel description > Description du channel language > Langue du channel copyright > Info sur le copyright du channel managingEditor > Mail de la personne responsable du contenu webMaster > Mail du webmaster pubDate > Date de publication lastBuildDate > Date de la dernière publication category > Catégorie à laquelle le channel appartient generator > Programme utilisé pour générer le channel docs > Lien vers la documentation du format utilisé dans le fichier RSS cloud > Permet à un programme de s'enregistrer pour être notifié des modifications de ce channel ttl > Time to live, avant le prochain rafraîchissement image > Image affichée avec le channel rating > note PICS textInput > Ajouter une zone de saisie de texte skipHours > Heures que les agrégateurs peuvent ignorer skipDays > Jours que les agrégateurs peuvent ignorer
ITEM
title > Titre de l'item link > URL de l'item description > Description de l'item author > Mail de l'auteur de l'item category > Catégorie à laquelle l'item appartient comments > Lien vers une page de ccommentaires sur l'item enclosure > Objet media attaché à l'item guid > Texte qui identifie de manière unique cet item pubDate > Date de publication source > Channel auquel l'item appartient
|
Remarque : Pour lier votre page web à votre flux RSS vous devez ajouter un lien dans le header. Du type : <link rel="alternate" type="application/rss+xml" href="http://www.site.com/rss.xml" />
Créer un flux RSS dynamique en PHP
Avec la technologie PHP vous pouvez utiliser votre base de données pour créer dynamiquement le flux RSS. L'internaute ira donc lire votre flux RSS à l'adresse http://www.votresite.com/rss.php Voici ci dessous comment procèder :
<?php
// on détermine le type de document, ici du xml header ( "Content-type: text/xml" ) ;
/* Inclure ici votre script de connexion base de données */
$date = date ( "Y:m:d" ) ;
// On récupère la liste des news publiés et dont la date de publication est valable // et on limite à 10 entrées $requete_news = mysql_query ( " SELECT * FROM news WHERE actif=1 and date_debut <= '$date' ORDER BY date DESC LIMIT 10 ") or die ( mysql_error() ) ; $rss = "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>" ; $rss .= "<rss version=\"2.0\">" ; $rss .= "<channel>" ; $rss .= "<title>Nom de votre site"</title>" ; $rss .= "<link>Lien de votre site</link>" ; $rss .= "<description>Description de votre site</description>" ;
while ( $tab_news = mysql_fetch_array ( $requete_news ) ) { // Récupère la date de publication de la news $date_news= date ( "D, d M Y H:i:s" , strtotime( $tab_news[date] ) ); // On crée l'item avec ces données $rss .= "<item>" ; $rss .= "<title><![CDATA[".$tab_news['titre']."]]></title>"; $rss .= "<link>http://www.urldusite.com/index.php?rubrique=news&idnews=".$tab_news['id']."</link>" ; $rss .= "<description><![CDATA[".$tab_news['texte']."]]></description>" ; $rss .= "<pubDate>".$date_news." GMT</pubDate>" ; $rss .= "</item>" ; }
$rss .= "</channel>" ; $rss .= "</rss>" ;
// On affiche le contenu XML echo $rss;
?>
|
|
Commenter ce wiki sur le forum
|