Se connecter avec
S'enregistrer | Connectez-vous

Faire un système de cache pour mes news

Dernière réponse : dans Programmation

Bonjour, voila j'aimerais faire un petit système de cache pour mes news.
Donc voici mon code mais quelque chose cloche, rien ne s'affiche sur ma page de news.

cache.php
  1. <?php
  2. // met en cache une variable
  3. function create_cache($nom_cache, $contenu)
  4. {
  5. // utilisation de serialize() pour transformer $content en chaine de caracteres
  6. $contenu = serialize($contenu);
  7.  
  8. // echappement les caracteres speciaux pour pouvoir mettre le tout entre quotes dans le futur fichier
  9. $contenu = str_replace(array('\\', '\'', "\0"), array('\\\\', '\\\'', '\\0'), $contenu);
  10.  
  11. // creation du code php a stocker dans le fichier
  12. $contenu = '<?php' . "\n\n" . '$cache = unserialize(\'' . $contenu . '\');' . "\n\n" . '?>';
  13.  
  14. // ecriture du code dans le fichier
  15. $fichier = fopen('./cache/donnees_' . $nom_cache . '.php', 'w');
  16. $resultat = fwrite($fichier, $contenu);
  17. fclose($fichier);
  18.  
  19. // renvoie true si l'ecriture du fichier a reussi
  20. return $resultat;
  21. }
  22.  
  23. // recupere une variable mise en cache
  24. function get_cache($nom_cache)
  25. {
  26. // verifie que le fichier de cache existe
  27. if ( is_file('./cache/donnees_' . $nom_cache . '.php') )
  28. {
  29. // le fichier existe, on l'execute puis on retourne le contenu de $cache
  30. include('./cache/donnees_' . $nom_cache . '.php');
  31. return $cache;
  32. }
  33. else
  34. {
  35. // le fichier de cache n'existe pas, on retourne false
  36. return false;
  37. }
  38. }
  39.  
  40. // detruit un cache
  41. function destroy_cache($nom_cache)
  42. {
  43. return @unlink('./cache/donnees_' . $nom_cache . '.php');
  44. }
  45.  
  46.  
  47. // on essaye de recuperer les donnees dans le cache
  48. if ( !$donnees = get_cache('news') )
  49. {
  50. // on se connecte a la BDD
  51. include("scripts/connectmysql.php");
  52.  
  53. // le cache n'existe pas, recuperation des messages dans la base de donnees
  54. $resultat = mysql_query('SELECT * FROM news');
  55.  
  56. // stockage du resultat dans la variable $donnees
  57. $donnees = array();
  58. while ( $donnees[] = mysql_fetch_array($resultat) );
  59.  
  60. // mise en cache de $donnees
  61. create_cache('news', $donnees);
  62.  
  63. // on se deconnecte de la BDD
  64. mysql_close();
  65. }
  66.  
  67. // lecture des messages
  68. foreach ( $donnees as $ligne )
  69. {
  70. ?>
  71. <span class="titrenews"><?php echo '' . stripslashes($donnees['titre']) . ''; ?><span style="font-size: 10px; color: white;"> postй le <?php echo date('d/m/Y', $donnees['timestamp']); ?></span></span>
  72. <p class="texte2" style="padding: 5px; margin-bottom: 10px;"><?php echo '' . stripslashes($donnees['texte']) . ''; ?></p>
  73. <?php
  74. }
  75. ?>
  76.  
  77. ?>


Donc voila et merci beaucoup pour celui qui aura une solution.

Autres pages sur : systeme cache news

Lassé par la pub ? Créez un compte
Lassé par la pub ? Créez un compte
Tom's guide dans le monde