Bonjour à tous,
Je suis confronté à un pb qui m'échappe. Je souhaite utiliser le système de cache PHP
J'ai créé 4 fichiers cache sur mon serveur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ob_start(); print_r(serialize($tab_inst)); $page = ob_get_contents(); // copie du contenu du tampon dans une chaîne ob_end_clean(); // effacement du contenu du tampon et arrêt de son fonctionnement file_put_contents($filecache, $page);
Au chargement d'une page, je dois lire le contenu de mes données en cache, je fais ceci
Si j'appelle 4 fois (pour mes 4 fichiers en cache) ce code, alors mon code php s'arrête en plein milieu de mon code, sans comprendre pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part return json_encode (unserialize(file_get_contents($filecache)));
Si je supprime un appel, donc j'appelle uniquement 3 fois le file_get_contents(), alors le code fonctionne parfaitement bien.
Il faut savoir que mes fichiers ne sont pas gros (20ko max)
Il faut également savoir que ce code est appelé dans un contexte de moteur de recherche en base de données, donc assez lourd, beaucoup de boucle foreach ...
J'ai donc pensé que j'avais un problème de memory_limit, j'ai boosté, mais cela n'a rien changé ...
Pour testé, j'ai remplacé le file_get_contents par du fread
mais j'ai le même comportement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $filename = "/cache/monfichier.html"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle); $t = unserialize($contents); return json_encode ($t);
Je n'ai plus d'idée, je sèche !!
Avez-vous une idée ? des orientations à me conseiller ?
Merci d'avance pour votre coup de main
Cyril
Partager