function lis_dans_cache($fichier,$returnvar=null,$echoresult=null,$unserialize=true){
//lit le cache
if (file_exists('temp/'.$fichier)){
$var=file_get_contents('temp/'.$fichier);
if ($unserialize==true){$var=unserialize($var);}
if ($echoresult==true){echo $var;return true;}
if ($returnvar==true){return $var;}
}else{return false;}
}
function ecris_dans_cache($fichier,$var,$serialize=true){
//ecrit le cache
if ($serialize==true){$var=serialize($var);}
file_put_contents('temp/'.$fichier,$var);
}
function clear_cache(){
$fs=glob('temp/*');
foreach ($fs as $file){
unlink ($file);
}
}
function start_cache(){
ob_start();
}
function end_cache($fichier,$returnvar=null,$echoresult=null){
$var=ob_get_clean();
if ($echoresult==true){ecris_dans_cache($fichier,$var,false);echo $var;return true;}
if ($returnvar==true){ecris_dans_cache($fichier,$var,true);return unserialize($var);}
}
//Stocker le résultat d'une portion de code
if (!$var=lis_dans_cache('nomdufichierdecache',true,false,false)){// pas dans le cache
start_cache();
list_matching_snippets($titre,$tagonly);
end_cache'nomdufichierdecache',false,true);
}else{
echo $var;
}
//Stocker une variable
if (!$var=lis_dans_cache('tagcloud',true,false,true)){
$tags=list_tags();
$taglist=array();
foreach($tags as $tag){
$taglist[]=$tag['x'];
}
natcasesort($taglist);
ecris_dans_cache('tagcloud',$taglist,true);
ecris_dans_cache('tags',$tags,true);
}else{
$taglist=$var;
$tags=lis_dans_cache('tags',true);
}