viernes, 20 de enero de 2012

Crear tu sistema de caché con PHP

Os presento el último grito de moda. Un sencillo fragmento de código que te permite cachear nuestras páginas web.

¿Que ventajas tiene esto?
En páginas muy visitadas que necesitan mucho tiempo de carga, páginas lentas y para evitar la larga espera. O para evitar tráfico innecesario de una web o la sobrecarga de peticiones en el servidor... Podemos cargar la web ya almacenada en el cliente.

¿Cómo?
Aplicamos el siguiente código
< ? p h p
       // Definimos la ruta y el nombre del archivo en caché
       $cachefile = 'cached-files/'.date('M-d-Y').'.php';
       
       //Definimos el tiempo de vida del fichero en segundos. Por ejemplo 5 horas.
       $cachetime = 18000;

       //Comprobamos si el fichero caché está fresco y aun sirve. Si es así, Lo mostramos y salimos.
       if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
              include($cachefile);
              exit;
       }

       // Si no hay ningún archivo o el archivo de demasiado viejo, mostramos la página y la capturamos.
       ob_start();
? >
< h t m l >
       Código html
< / h t m l >
< ? p h p
       // Una vez terminado guardamos el contenido en el fichero
       $fp = fopen($cachefile, 'w');
       fwrite($fp, ob_get_contents());
       fclose($fp);

       // Finalmente enviamos la salida al navegador
       ob_end_flush();
? >