Jak jsem již dříve popisoval cache celých PHP stránek tak dnes Vám popíši způsob jak cacheovat části stránek které jsou výpočtové náročné na vytvoření. Nadefinujeme si funkce clear_cache(), dej_cache() a uloz_cache().

Použití je velmi jednoduché. Jen je potřeba pro každý cacheovaný segment stránek zvolit unikátní soubor a je třeba vytvořit adresář „cache“ s právem zápisu.


if ( $vyst = dej_cache("st002.cache") )
{ echo $vyst; }
else
{
//generuji vyýstup do $vyst
echo $vyst;
uloz_cache("st002.cache", $vyst);
}

Function clear_cache($file)
{
$file = "./cache/".$file;
if ( file_exists($file) == true )
{ unlink($file); }
return true;
}

Function dej_cache($file, $platnost = 3600)
{
$file = "./cache/".$file;
if ( file_exists($file) == true )
{
$c_file_cas = filemtime($file);
$c_cas = time() - $c_file_cas;
if ( $c_cas < $platnost )
{
return file_get_contents ($file);
}
else { return false; }
}
else { return false; }
}

Function uloz_cache($file, $string)
{
$file = "./cache/".$file;
file_put_contents ($file, $string, LOCK_EX);
}