<?php
class cache {
public $cache_file_name;
public $age;
public function __construct(){
$this->cache_start();
register_shutdown_function(array($this, "cache_end"), "inside");
}
public function __descruct(){
$this->cache_end();
}
public function cache_start(){
global $cache_file_name, $age;
$cache_file_name = $_SERVER["DOCUMENT_ROOT"].$_SERVER['REQUEST_URI'] . '_cache';
if (empty($age)){
$age = 600;
}
if(file_exists($cache_file_name)){
if (filemtime($cache_file_name) + $age > time()) {
readfile($cache_file_name);
unset($cache_file_name);
exit;
}
}
ob_start();
}
public function cache_end()
{
global $cache_file_name;
if (empty($cache_file_name)){
return;
}
$str = ob_get_clean();
echo $str;
fwrite(fopen($cache_file_name . '_tmp', "w"), $str);
rename($cache_file_name . '_tmp',$cache_file_name);
}
}
?>