Gestion d'un cache avec ob_start() et flock()
Bonjour,
j'ai créé un système de cache rudimentaire pour un petit site, mais j'ai un problème avec la fonction flock() .
On m'a dit que le verrouillage étai mal placé sur ce script, que j'avais locké au mauvais endroit. mais je ne vois pas...
Voici le script:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
<?php
// SYSTEME DE CACHE
// Début du CACHE
$dCache = './cache/cache_';
$url = trim(strip_tags(md5($_SERVER['REQUEST_URI'])));
$fCache = $dCache.$url;
if(@filemtime($fCache) < time()-360) // time()-(3600*24*365.25) Un an
{
ob_start();
// PAGE A METTRE EN CACHE ICI
// Fin du CACHE
$cCache = ob_get_contents();
ob_end_flush();
$fd = fopen($fCache, 'wb'); // on ouvre le fichier cache
if (flock($fd, LOCK_EX)) // On place un verrou exclusif
{
fwrite($fd, $cCache);
flock($fd, LOCK_UN); // On libère le verrou exclusif/partagé
}
else
{
echo "Impossible de verrouiller le fichier !";
}
fclose($fd);
}
else
{
include($fCache);
}
?> |