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.