Les flux RSS sont utiles pour suivre l’actualité d’un site web. Sachant qu’ils contiennent les informations liés aux articles d’un site, il peut se révéler pratique d’extraire le contenu d’un flux RSS pour en afficher une liste des articles avec un lien vers ceux-ci. L’objectif de cet article consiste à créer un simple code PHP qui sert d’agrégateur RSS.
Prérequis
Il faut avoir quelques notions avec le langage de programmation PHP et avoir un hébergement qui prend en compte PHP 5.
Code PHP
Le code PHP, qui ne fait que 8 lignes, est visible ci-dessous.
<?php $url = "https://tonyarchambeau.com/feed/"; /* insérer ici l'adresse du flux RSS de votre choix */ $rss = simplexml_load_file($url); echo '<ul>'; foreach ($rss->channel->item as $item){ $datetime = date_create($item->pubDate); $date = date_format($datetime, 'd M Y, H\hi'); echo '<li><a href="'.$item->link.'">'.utf8_decode($item->title).'</a> ('.$date.')</li>'; } echo '</ul>'; ?>
Dans un premier temps ce code extrait les informations du flux RSS et convertit le document XML en un objet. Puis la boucle foreach permet d’exploiter les informations présentent dans les balises <item> (dans un flux RSS chaque article est inclus dans une balise <item>).
A l’intérieur de la boucle foreach, il y a il ne reste plus qu’à afficher les informations souhaités. Dans l’exemple ci-présent trois informations sont extraites: le lien vers l’article, le titre de l’article et la date de publication.
Personnaliser
Il est possible d’utiliser plus d’informations si celles-ci sont disponibles dans le flux RSS. Le tableau ci-dessous présente les métadonnées qui sont souvent inclussent dans un fil RSS avec une description.
Métadonnée | Nécessité | Description | Exemple |
---|---|---|---|
<title> | Obligatoire | Titre de l’article | [Twitter] Extraire les tweets en AJAX |
<link> | Recommandé | Adresse internet lié à l’article. | https://tonyarchambeau.com/ajax/twitter-extraire-les-tweets-en-ajax-94/ |
<pubDate> | Facultatif | Date de publication de l’article. | Tue, 12 Jan 2010 16:24:11 +0000 |
<description> | Obligatoire | Cette balise peut tout aussi bien contenir une brève description de l’actualité ou bien l’article en entier. Certains sites préfère dévoiler un extrait tandis que d’autres mettent l’intégralité des articles dans le flux RSS. Le choix peut se révéler très stratégique. | <![CDATA[Le service Twitter est très pratique pour publier des courts messages. Il est entre autres utile pour la veille technologique. Parfois il se révèle intéressant de consulter les derniers messages d’un compte Twitter. Cet article présente un tutorial pour réaliser une petite application AJAX qui affiche les derniers messages d’un compte Twitter de votre choix. […]]]> |
<guid> | Facultatif | Définit un identifiant unique pour l’objet. | https://tonyarchambeau.com/?p=94 |
<author> | Facultatif | Contient l’adresse email de l’auteur. | auteur@example.com |
<category> | Facultatif | Définit la catégorie de l’article. | <![CDATA[PHP]]> |
<comments> | Facultatif | Définit l’adresse d’une page web sur laquelle se trouve les commentaires liés à l’article. | https://tonyarchambeau.com/ajax/twitter-extraire-les-tweets-en-ajax-94/#comments |
Pour utiliser l’une ou l’autre des métadonnées dans le code présenté sur cette page web, il suffit de reprendre le nom de l’objet. Par exemple, pour inclure la description il suffit d’utiliser la variable « $item->description » à l’intérieur de la boucle foreach du code présent sur cette page.
Amélioration supplémentaire
Il est possible d’améliorer le code présenté sur cet article. Pour commencer il est possible de personnaliser l’aspect en modifiant le xHTML/CSS, puis le format de la date. Enfin, certaines fonctionnalité supplémentaires peuvent être ajoutées, tel que l’ajout d’autres métadonnées présenté dans le tableau.