philippe06 | -Les sessions ne vont par définition pas au dela de la durée de la session. -Les cookie sont une solution mais ils dépendent du client, avec probablement des limitations dans la taille. -La base de donnée est pas mal, mais il faut un schéma de base donnée. Je rajouterais la solution que j'emploie: dumper les variables des fichiers: put_records sauvegarde, get_records va chercher, is_present permet de tester si le fichier existe. C'est mal ce que je fais? Code :
- <?php
- //gestion d'un cache pour alleger la base de donnée
- $cache_dir="/home/www/cache";
- $no_cache=false;
- function put_records($records,$nom_fichier,$absolute=false)
- {
- global $cache_dir;
- $cible=($absolute==false)?"$cache_dir/$nom_fichier":"$nom_fichier";
- $rep_final_tab=explode("/",$cible);
- $rep_final_tab[count($rep_final_tab)-1]="";
- $rep_final="";
- foreach($rep_final_tab as $rep_final_element){$rep_final.="/".$rep_final_element;}
- $exist_rep=file_exists($rep_final);
- if ($exist_rep==false)
- {
- $r=popen ("mkdir $rep_final","r" );
- mkdir=".fgets($r)."<br>";
- $r=popen ("chmod 777 $rep_final","r" );
- chmod=".fgets($r)."<br>";
- }
- $handle=false;
- try{
- $handle=fopen($cible,"w" );
- $fichier=var_export($records,true);
- $tmp=fputs($handle,$fichier);
- fclose($handle);
- return $tmp;
- }
- catch(Exception $e)
- {
- return false;
- }
- }
- function get_records($nom_fichier,$absolute=false)
- {
- global $cache_dir;
- $cible=($absolute==false)?"$cache_dir/$nom_fichier":"$nom_fichier";
- $handle=false;
- try{
- $handle=fopen($cible,"r" );
- if ($handle!==false)
- {
- $fichier="";
- $tmp="";
- while($chunk=fgets($handle))
- $fichier.=$chunk;
- $res_eval=eval('$tmp='.$fichier.";" );
- if ($res_eval===false)
- {
- $errfile_res=fopen('FICHIER_ERREUR','a+');
- fputs($errfile_res,"erreur de fichier syntaxe dans le cache\n".print_r(debug_backtrace(),true));
- }
- fclose($handle);
- return $tmp;
- }
- else return false;
- }
- catch(Exception $e)
- {
- $errfile_res=fopen('FICHIER_ERREUR','a+');
- fputs($errfile_res,"erreur de fichier syntaxe dans le cache\n".print_r(debug_backtrace(),true));
- return false;
- }
- }
- function is_present($nom_fichier,$absolute=false,$uptodate=false)
- {
- global $cache_dir;
- global $no_cache;
- if ($no_cache==true) return false;
- $cible=($absolute==false)?"$cache_dir/$nom_fichier":"$nom_fichier";
- if (file_exists($cible))
- {
- if (!$uptodate)
- {
- return true;
- }
- else if (date ("F d Y", filemtime($cible)) == date ("F d Y" ))
- {
- return true;
- }
- else return false;
- }
- else return false;
- }
- ?>
|
Message édité par philippe06 le 06-01-2010 à 13:22:36 ---------------
Aimer les femmes intelligentes est un plaisir de pédéraste. (Charles Baudelaire) - Vous vulgarisez :o (Jean-Kevin Dubois)
|