<?php
// met en cache une variable
function create_cache($nom_cache, $contenu)
{
// utilisation de serialize() pour transformer $content en chaine de caracteres
$contenu = serialize($contenu);
// echappement les caracteres speciaux pour pouvoir mettre le tout entre quotes dans le futur fichier
$contenu = str_replace(array('\\', '\'', "\0"), array('\\\\', '\\\'', '\\0'), $contenu);
// creation du code php a stocker dans le fichier
$contenu = '<?php' . "\n\n" . '$cache = unserialize(\'' . $contenu . '\');' . "\n\n" . '?>';
// ecriture du code dans le fichier
$fichier = fopen('./cache/donnees_' . $nom_cache . '.php', 'w');
$resultat = fwrite($fichier, $contenu);
fclose($fichier);
// renvoie true si l'ecriture du fichier a reussi
return $resultat;
}
// recupere une variable mise en cache
function get_cache($nom_cache)
{
// verifie que le fichier de cache existe
if ( is_file('./cache/donnees_' . $nom_cache . '.php') )
{
// le fichier existe, on l'execute puis on retourne le contenu de $cache
include('./cache/donnees_' . $nom_cache . '.php');
return $cache;
}
else
{
// le fichier de cache n'existe pas, on retourne false
return false;
}
}
// detruit un cache
function destroy_cache($nom_cache)
{
return @unlink('./cache/donnees_' . $nom_cache . '.php');
}
// on essaye de recuperer les donnees dans le cache
if ( !$donnees = get_cache('news') )
{
// on se connecte a la BDD
include("scripts/connectmysql.php");
// le cache n'existe pas, recuperation des messages dans la base de donnees
$resultat = mysql_query('SELECT * FROM news');
// stockage du resultat dans la variable $donnees
$donnees = array();
while ( $donnees[] = mysql_fetch_array($resultat) );
// mise en cache de $donnees
create_cache('news', $donnees);
// on se deconnecte de la BDD
mysql_close();
}
// lecture des messages
foreach ( $donnees as $ligne )
{
?>
<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>
<p class="texte2" style="padding: 5px; margin-bottom: 10px;"><?php echo '' . stripslashes($donnees['texte']) . ''; ?></p>
<?php
}
?>
?>