Como cachear una página web en PHP
//vienen de google if (preg_match('/q=|search/', $_SERVER['HTTP_REFERER']) ) { print 'Todos sabemos las ventajas y desventajas que tiene cachear una página web, principalmente ventajas cuando trabajamos con bases de datos (MySQL, SQL Server, etc) aunque desventajas cuando suele cambiar la web muy a menudo. Por esta razón vamos a suponer que trabajamos con una página estática que coge datos de una base de datos que se actualizan una vez al día.
Lo primero que debemos hacer es crear un directorio llamado cache por ejemplo y darle permisos de escritura para todos los usuarios. Esto se hace porque normalmente crearemos el directorio con un usuario y apache se ejecuta con otro usuario:
chmod 777 cache
Ahora, dentro del directorio crearemos el fichero de la clase cache.class.php con el siguiente contenido:
cache_dir = $path;
$this->cache_time = $time;
$this->cleaning = $action;
$this->file = $this->cache_dir."cache_".md5(urlencode($_SERVER['REQUEST_URI'])); //md5, encriptado por seguridad
//condicional: Existencia del archivo, fecha expiración, acción
if (file_exists($this->file) && (fileatime($this->file)+$this->cache_time)>time() && $this->cleaning == false){
readfile($this->file);
exit();
} else {
$this->caching = true;
//grabamos buffer
ob_start();
}
}
function cerrar(){
if ($this->caching){
//Recuperamos información del buffer
$data = ob_get_clean();
// mostramos información
echo $data;
//borramos cache si existe
if(file_exists($this->file)){
unlink($this->file);
}
//escribimos información en cache
$fp = fopen( $this->file , 'w' );
fwrite ( $fp , $data );
fclose ( $fp );
}
}
} // Fin clase Cache
?>
Por último sólo queda crear el fichero index.php que llamará a esa clase y contendrá el código que deseamos cachear:
iniciar('cache/',1800,false);?>
Hora cacheada:
$cache1->cerrar();
//Cerramos cache
?>
Cualquier duda o sugerencia, se tendrá en cuenta.
301 Moved Permanently
También puedes encontrarme en:
Últimas anotaciones
- Recupérate pronto, Schumi
- ¡Gracias Miliki!
- El poker online, cada vez con más adictos
- No hay tregua con los terroristas
- Mi experiencia con Groupon y otros cupones
- Actualizar WordPress por SSH
- Cron jobs con WordPress
- Necesito bucear
- Otro crucero por favor
- Añadir fotos en miniatura en el feed de wordpress