Code: Select all
<?php
class page_cache{
function page_cache($lifetime,$cachedir='',$status='')
{
$this->_cachedir = $cachedir;
$this->_md5 = md5(basename($_SERVER['PHP_SELF'])) . '.cache';
if(@filemtime($cachedir . $this->_md5)+$lifetime > time())
die(file_get_contents($cachedir . $this->md5) . $status);
else{
return false;
ob_start();}
}
function cache()
{
if($this->_cachedir != '' && !is_dir($this->_cachedir))
mkdir($this->_cachedir,0777);
$fo = fopen($this->_cachedir . $this->_md5,'w');
fputs($fo,ob_get_contents());
fclose($fo);
ob_end_flush();
}
}?>
Code: Select all
<?php
include('cache.class.php'); /* inkludera klassen */
$cache = & new page_cache(900,'cache/','CACHED'); /* det första argumentet är hur länge cachen ska vara giltlig i sekunder, det andra är vilken katalog cachen ska sparas i (kan lämnas tom eller skrivas som '' för att spara i samma katalog som filen ligger i normalt), det tredje argumentet behövs inte utan det är bara text som skrivs ut efter hela sidan om en giltig cache hittas */
/* här följer all kod som normalt skulle köras på sidan, databas anslutningar, utskrifter, etc. etc. etc. */
$cache->cache();
?>