Aujourd’hui, je vous présente le script basique d’utilisation de simplepie, bibliothèque PHP qui permet de parser des flux RSS.
Ce script prend en compte le fait que vous utilisiez Composer dans votre projet, et que vous ayez déjà intégré simplepie dans votre projet. Si ce n’est pas le cas, je vous conseil de le faire.
Explication du script par étapes
Pour que vous ne soyez pas perdu par le script, aussi simple qu’il soit, je vais vous expliquer les différentes parties.
Les 2 premières lignes vous affiche les erreurs PHP dans votre navigateur, si erreur il y a. C’est une bonne pratique que j’ai, quand je développe en local.
Ensuite, je charge les bibliothèques qui existe dans mon composer. Pour ici, il n’y a que simplepie.
Arrive maintenant le plus gros du script. Je liste les différents flux RSS donc je veux récupérer la liste des articles
J’appelle la librairie simplepie, et je lui donne ma liste de flux RSS, et j’active le cache, que je met dans le dossier /cache/feeds pendant une durée de 3600 sec.
J’initialise notre variable, et j’encode les informations dans un format donnée avec la fonction handle_content_type().
Le format de base est le text/html.
Je vérifie s’il n’y a pas d’erreur dans la réception de nos données.
Il me reste à afficher les données de nos flux RSS, qui contiennent tous 4 informations de bases : les titres, dates, descriptions, et des liens.
Script complet
<?php
// Affichage des erreurs en local
ini_set('display_errors', 1);
error_reporting(E_ALL);
// Autoload vendor
require __DIR__ . "/../vendor/autoload.php";
$flux = [
"https://www.journaldugeek.com/feed/rss/",
"https://www.blogdumoderateur.com/feed",
"https://korben.info/feed"
];
$feed = new SimplePie();
$feed->set_feed_url($flux);
$feed->enable_cache(true);
$feed->set_cache_location(__DIR__ . '/cache/feeds');
$feed->set_cache_duration(3600);
$feed->init();
$feed->handle_content_type();
if ($feed->error) :
echo $feed->error;
endif;
foreach ($feed->get_items() as $item):
var_dump(
$item->get_permalink(),
$item->get_title(),
$item->get_description(),
$item->get_date()
);
endforeach;
Liens
Site du projet simplepie : https://simplepie.org/
Github de simplepie : https://github.com/simplepie/simplepie
En espérant que cela vous serve.