Ajax HTML 5 Création site CMS Comment Design Logiciels Programmation RSS SQL Scriptol Scripts Mobiles
Forum
Syndication
Promotion avec RSS
Choix du format
Applications RSS
Format RSS 2.0
Format RSS 1.0
Tableau des balises
FAQ RSS
Outils RSS
Editeur ARA
Lecteur RSS
Lecteur Atom
Lecteur commun
Bioloide
Scripts & Outils
Scriptol
Logiciels
Chrome
XML

Comment mettre un flux RSS en cache

On peut économiser les ressources en plaçant le flux converti sous forme HTML dans un fichier plutôt que de parser le code XML et le convertir en HTML à chaque affichage.

Cependant, ce fichier en cache doit être mettre à jour automatiquement et régulièrement, par exemple toutes les heures, comme dans l'exemple de code ci-dessous.

On remplacera dans la page web qui présente le flux le code usuel pour appeler RSSLIB (l'URL est un exemple):

<?php
require_once("rsslib.php");
$url = "http://www.scriptol.fr/rss.xml";
echo RSS_Display($url, 15, false, true);
?>

Par le code suivant:

<?php
$cachename = "rss-cache-tmp.php";
$url = "http://www.scriptol.fr/rss.xml"; 
if(file_exists($cachename))
{
  $now = date("G");
  $time = date("G", filemtime($cachename));
  if($time == $now)
  {
     include($cachename);
     exit();
  }
}
include("rsslib.php");
$cache = RSS_Display($url, 15, false, true);
file_put_contents($cachename, $cache); echo $cache; ?>

Pour une périodicité différente de mise à jour, on changera le format de date() et le test de comparaison.

Par exemple, pour une mise à jour toutes les dix minutes, le format sera:

  $time = date("i", filemtime($cachename));

et le test de comparaison deviendra:

  if(intval($time) / 10  == intval($now) / 10)

Voir la démonstration: Mise en cache d'un flux RSS.

Télécharger l'archive sur la page de l'article: Lecteur RSS.

© 2007-2011 Scriptol.fr