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 : Sélectionner tout - Visualiser dans une fenêtre à part
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); } ?>
Partager