» Mise en cache

Rédigé par : Guillaume
Le : 15/04/2003 à 10:13
Hits : 6790
TéléchargerImprimer
Cet article pour compléter l'astuce sur les caches, le but de cet article :
- Faire une requête dans la Base de donnée MySQL
- Créer un fichier de cache si il est inéxistant
- Mettre à jour le cache tout les jours
- Si le fichier de cache existe, le lire pour éviter grand nombre de requête sur votre Base de donnée.

Il faut bien penser à définir les variables pour la connexion à votre Base de donnée, c'est à dire les variables : $host, $login, $pass, $base dans un fichier extérieur de préférence et l'inclure ou sinon en début de code.

article_5.php
<?php
// ------------------------------------------------------------------------- //
// Mise en cache                                                             //
// ------------------------------------------------------------------------- //
// Le 15/04/2003 à 10h13 par Guillaume JIGUEL (guillaume@gphp.net)           //
// ------------------------------------------------------------------------- //
// http://www.gphp.net/articles,5.php                                        //
// ------------------------------------------------------------------------- //

// On définis la function de mise en cache (présente dans les astuces)
function cache($fichier$contenu){ 
$fp fopen("$fichier","w+"); 
   if(!
$fp){ 
       return 
false
   }else{ 
       
fputs($fp,"$contenu\n"); 
       
fclose($fp); 
       return 
true
   } 
}

// On nomme le fichier de cache
$fichier "nouvelles.txt";

// On analyse si le fichier est déjà présent sur le serveur, si oui on examine sa date de création
if (file_exists($fichier)){
$creation date("Ymd"filectime($fichier));
$time date("Ymd"time());
}
    
// Si sa date de création est inférieur au jour actuel, ou bien que le fichier est inexistant => alors on crée le cache
    
if ($creation $time || !file_exists($fichier)){
        
// Connexion à votre db
        
$db mysql_connect("$host""$login""$pass");
        
mysql_select_db("$base",$db);

        
// On fait ici la requête SQL pour récupérer les champs de la table
        
$query_nouvelles "SELECT id,date,titre FROM nouvelles ORDER BY id DESC LIMIT 0,5";
        
$result_nouvelles mysql_query($query_nouvelles);
            
            
// On récupère les infos des champs dans $cache_nouvelles
            
$cache_nouvelles "<div id=\"nouvelles\">";
                while (
$row_nouvelles mysql_fetch_array($result_nouvelles)) {
                    
$cache_nouvelles .= "<a href=\"nouvelles.php?id=".$row_nouvelles['id']."\" class=\"nouvelles\">[ ".$row_nouvelles['date']." ]:".$row_nouvelles['titre']."</a><br />\n";
                }
            
$cache_nouvelles .= "</div>";
        
        
// On ferme la connexion à la db
        
mysql_close($db);
        
        
// On met en cache la requête récupérée
        
cache($fichier$cache_nouvelles);
        echo 
"<br />Mise en cache du cache";
    
    }else{
        
// Si les conditions de création de cache ne sont pas remplies
        // On affiche le fichier de cache qu'on à crée
        
readfile($fichier);
    }
?>

» Commentaires

Pas de commentaires.

Vous devez être connecté en tant que Membre pour pouvoir poster un commentaire, Inscrivez vous ici !