<?php
/************************************************************
Script realise par Webaca (alias bogeux)
Le 09/01/2008
bogeux@gmail.com *************************************************************/
/************************************************************
Definition des constantes / tableaux et variables
*************************************************************/
// On donne un fichier dans lequel on stoquera la page
$cache = 'cache/news/liddelanews.html';
// En gros on prend l'heure actuelle moins le temps de validité du fichier cache (vous comprendrez après pourquoi)
$date_limit = time()-3600;
/************************************************************
Pace au code du cache
*************************************************************/
/* Ici on pose deux condition
- La première consiste a vérifier l'existance du fichier cache pour la page courrante
- La seconde consiste a vérifier si le fichier est encore d'actualité, pour cela on prend la date de création du fichier et on la compare a la date limite de validité
Si le fichier existe et qu'il est d'actualisé alors .... */
if( (file_exists($cache)) && (filemtime($cache) > $date_limit) )
{
// Il ne reste plus que a lire le contenu, on peut comparer cela à une inclusion
readfile($cache);
}
else // Si les condition ne sont pas validé alors il va faloir traiter la page
{
// On va préparer la mise en cache, pour cela on va initialiser un tampon
ob_start();
// Moi j'utilise des class pour les news donc j'affiche le contenu, sa pourrais être n'importe quoi : html/php/javascript et même des requêtes SQL
// Rien ne sera affiché à l'écran à ce moment
$news->affichage($news_id);
// Ici on place le contenu de ce qu'il y a ci-dessous en mémoire
// Le contenu contient du HTML et pas de PHP donc pas de requete, pas de calcul, ...
$contenu = ob_get_contents();
// Le contenu de la mémoire tampon est stocker dans une variable donc on peut la vidé
ob_end_clean();
// Maintenant on écrit le contenu de la variable dans le fichier cache
file_put_contents($cache, $contenu) ;
// Comme avant rien n'a été afficher il faut le faire maintenant
echo $page;
}
?>