El sistema es bastante simple y en principio se podría aplicar a cualquier sitio. El código sería algo tal que este:
<?php
$md5 = md5($_SERVER["REQUEST_URI"]);
// convertimos la URL a único identificador
$file = "cache/".$md5.".html";
// donde se guardará el fichero
$hora = filemtime($file);
// comprobamos la hora del fichero si ya existiera
if(time() <= $hora+86400) {
// asignamos un tiempo de cache de 86400 segundos
include($file);
// incluimos el contenido del fichero cacheado
echo "<!-- ".date('YmdHis', $hora)." -->";
// (opcional) añadimos al pie de página la fecha-hora de la caché
exit;
// salimos
}
ob_start();
// abrimos la memoria
?>
AQUI VA LA WEB NORMAL
<?php
$fp = fopen($file, 'w+'); // abrimos el fichero de caché
fwrite($fp, ob_get_contents()); // guardamos el contenido de la página generada en el fichero
fclose($fp); // cerramos el fichero
ob_end_flush(); // devolvemos la página que se ha generado y cerramos la memoria
?>
Con este sistema podremos incrementar una página dinámica tranquilamente entre un 50% y un 1.000% la velocidad, dependiendo de la carga de base de datos o cálculo que tuviera anteriormente.