Bonjour à tous,
Je suis confronté à un pb qui m'échappe. Je souhaite utiliser le système de cache PHP
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);
J'ai créé 4 fichiers cache sur mon serveur
Au chargement d'une page, je dois lire le contenu de mes données en cache, je fais ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
return json_encode (unserialize(file_get_contents($filecache)));
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.
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
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);
mais j'ai le même comportement

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