Bonjour à tous !
Actuellement, on utilise l'output buffer (principalement ob_start et ob_get_clean) sur notre site PARTOUT, j'exagère à peine en disant qu'on l'utilise dans quasiment la moitié des fichiers. Et là, depuis hier, j'ai fait un ajout sur une page, et ça ne fonctionne plus du tout. On a cherché pendant des heures, et on a finalement trouvé le problème : le buffer est flushed parce qu'on dépasse la taille maximum (4096 bytes).
Or, le problème, c'est que dans 3/4 des endroits où on l'utilise, on l'utilise en dépassant cette taille de 4096 bytes. On a essayé de changer cette taille via le paramètre chunk_size, via le fichier php.ini, mais rien y fait : pour cette page, dès qu'on dépasse ça flush et on perd 80% de la page... Pourtant on l'utilise exactement de la même manière pour toutes les pages, comme c'est une Single Page Application :
Comme c'est dans un cadre pro, je peux pas donner plus de code que ça, mais voilà, on se base sur un AJAX, qui récupère la vue de la page et la charge via le bout de code ci-dessus. Est-ce que quelqu'un a une idée du problème ? Comme je l'ai dit, on a déjà essayé de spécifier le chunk_size et de changer le fichier php.ini...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ob_start(); /*calcul pour "trouver" la vue de la page*/ include($maVariableVersLaVueDeLaPage); $json['return']['html'] = ob_get_clean();
Merci beaucoup d'avance pour votre aide ! Je suis vraiment au bout du bout c'est la déprime
EDIT : quand je dis "via le fichier php.ini", je parle de la directive output_buffering de php.ini
EDIT 2 : on a réussi à corriger le problème en descendant le ob_start de quelques lignes, incompréhensible mais au moins ça fonctionne donc on va pas s'en plaindre
Partager