Cuando creamos páginas con php nos interesa que la carga de la web sea rápida. Si una página web está cacheada sabemos que la carga es muy rápida. Vamos a ver como cachear de una forma fácil y eficiente dinámicamente con php. Para ser los más rápidos.
Paso 1. Crear un archivo que llamaremos top-cache.php
Crearemos dos ficheros, el primero lo llamaremos top-cache.php, solo tienes que copiar el siguiente código y subir a tu ftp
<?php $url = $_SERVER["SCRIPT_NAME"]; $break = Explode('/', $url); $file = $break[count($break) - 1]; $cachefile = 'cached-'.substr_replace($file ,"",-4).'.html'; $cachetime = 18000; // Servir desde la cache si es mas actual que $cachetime if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) { echo "<!-- Copia en cache generada ".date('H:i', filemtime($cachefile))." -->\n"; include($cachefile); exit; } ob_start(); // Crear buffer de salida ?>
Veamos que hace este código. En las cinco primeras líneas del código creamos el nombre del archivo que vamos a cachear, por ejemplo, si vamos a cachear un archivo llamado lista.html el archivo cacheado se llamará cache.lista.html
En la línea 6, de código creamos una variable, $cachetime, que determina la vida de la cache.
De la línea 9 a la 13, una sentencia condicional que buscar un archivo llamado $cachefile. Si encuentra el archivo, inserta un comentario, en la línea 10, y el fichero $cachefile es incluido. Entonces, el exit para la ejecución del script y el fichero es enviado al cliente. Todo esto significa, que si encuentra un fichero estático, el código php no se interpreta por el servidor y mostrará el fichero cacheado.
En la línea 14 simplemente va creando un buffer si el $cachefile no se encuentra. Todo esto es para el fichero top-cache.php como habíamos comentado.
Paso 2. Crear un archivo bottom-cache.php
Ahora creamos el segundo fichero, botton-cache.php, copia y pega el siguiente código:
<?php // Cachear el contenid del fichero $cached = fopen($cachefile, 'w'); fwrite($cached, ob_get_contents()); fclose($cached); ob_end_flush(); // Enviar el navegador ?>
Si el fichero $cachefile no se encuentra en el servidor, se ejecuta el código y se crea el fichero, de esta forma la siguiente vez tendremos el fichero cacheado y el servidor servirá el fichero cacheado en lugar de ejecutar el código php.
Paso 3. Incluir los ficheros top-cache.php y bottom-cache.php en tu págian
Ahora solamente falta incluir los ficheros top-cache.php y bottom-cache.php en nuestra página. Claramente el fichero top-cache.php se incluye al principio de la página y bottom-cache.php al final de la página, por ejemplo
<? Php include ('top-cache.php'); / / El código PHP normal va aquí include ('bottom-cache.php'); ?>
Ya solamente queda probar