Saltar al contenido
Php

Como utilizar la cache con php

Para cachear p√°ginas con Php tenemos podemos utilizar un script que har√° lo siguiente:

Primero ver si ya est√° la p√°gina que queremos enviar en la cache, y si existe pues la enviar√°, reduciendo costes y llamadas a la base de datos, etc.

Segundo, si no existe la página que queremos enviar la creará, y así estará disponible para la próxima vez que se envíe la web.

Por ultimo, también tendremos que poner una duración de los ficheros que hay en la cache, para ir reemplazándolos por otros cada equis tiempo.

Tendremos dos ficheros de cache, al primero lo llamaremos antes de leer cualquier linea, si tu página comienza en el index.php, pues en la primera linea pondríamos llamaríamos a este script.

<?php
include ('empezar.php');
?>

El script empezar.php

<?php
$url = $_SERVER["SCRIPT_NAME"];
$break = Explode('/', $url);
$file = $break[count($break) - 1];
$cachefile = 'cached-'.substr_replace($file ,"",-4).'.html';
$cachetime = 18000;
 
// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
    echo "<!-- Cached copy, generated ".date('H:i', filemtime($cachefile))." -->\n";
    include($cachefile);
    exit;
}
ob_start(); // Start the output buffer
?>

Ahora iremos a la √ļltima linea que queremos cachear, en muchas webs ser√° el footer
Vamos al footer y llamamos a esta otro script.

<?php
include ('acabar.php');
?>

El script acabar.php sería así:

<?php
// Cache the contents to a file
$cached = fopen($cachefile, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
ob_end_flush(); // Send the output to the browser
?>

Con esto lograremos utilizar el cache para mejorar la velocidad de la web.