Première méthode :
Vous pouvez en fait enregistrer la sortie de la page avant de terminer le script, puis charger le cache au début du script.
exemple de code :
<?php
$cachefile = 'cache/'.basename($_SERVER['PHP_SELF']).'.cache'; // e.g. cache/index.php.cache
$cachetime = 3600; // time to cache in seconds
if(file_exists($cachefile) && time()-$cachetime <= filemtime($cachefile)){
$c = @file_get_contents($cf);
echo $c;
exit;
}else{
unlink($cachefile);
}
ob_start();
// all the coding goes here
$c = ob_get_contents();
file_put_contents($cachefile);
?>
Vous pouvez en fait enregistrer la sortie de la page avant de terminer le script, puis charger le cache au début du script.
exemple de code :
Si vous avez beaucoup de pages nécessitant cette mise en cache, vous pouvez le faire :
dans cachestart.php :
dans cacheend.php :
<?php
$c = ob_get_contents();
file_put_contents($cachefile);
?>
Ensuite, il suffit d'ajouter
include('cachestart.php') ; au début de vos scripts. et ajoutez
include('cacheend.php') ; à la fin de vos scripts. N'oubliez pas d'avoir un dossier nommé cache et d'autoriser PHP à y accéder.
Rappelez-vous également que si vous faites un cache de page complet, votre page ne doit pas avoir d'affichage spécifique à la SESSION (par exemple, afficher la barre des membres ou autre) car ils seront également mis en cache. Cherchez un framework pour la mise en cache spécifique (variable ou partie de la page).
Deuxième méthode :
Utilisez Squid ou mettez à jour les en-têtes HTTP correctement pour mettre en cache le navigateur.
PEAR possède un paquet de mise en cache (en fait deux) :
http://pear.php.net/package/Cache
Quatrième méthode :
Utilisez http://memcached.org/ . Il y a une explication sur la façon de procéder sur ce site.