J'ai quelques classes que j'écris des tests d'unité pour lesquels vous en avez fait des échos. Je veux supprimer cette sortie et cette pensée ob_start () code> et
ob_clean () code> suffirait, mais ils n'ont pas d'effet.
public function testSomething (){
ob_start();
$class = new MyClass();
$class->method();
ob_clean();
}
3 Réponses :
Vous voudrez peut-être quelque chose comme celui-ci
<?php public function testSomething (){ ob_start(); ob_implicit_flush(false); // turn off implicit flush // Make your output below $class = new MyClass(); $class->method(); // End of output // store output into variable: $output = ob_get_contents(); } ?>
Avez-vous implicit_flush défini sur True code> dans votre PHP INI? Cela peut provoquer le comportement que vous voyez car il indique à PHP de dire à la couche de sortie de s'incliner automatiquement après chaque bloc de sortie. Cela équivaut à appeler la fonction PHP Flush () après chaque appel à imprimer () ou à ECHO () et à chaque bloc HTML. P>
Il est désactivé à PHP.ini, bien qu'il indique qu'il est codé sur le code de la CLI SAPI. J'ai ajouté ob_implicit_flush (false); code> en aucun effet.
Je ne suis pas sûr. Peut-être essayez peut-être la définition false code> avant d'appeler
ob_start () code> si vous ne l'avez pas déjà fait.
Ce qui suit résout ce problème pour moi. Sans appeler ob_end_clean (), le contenu du tampon reste jusqu'à la fin du script, où il est rincé.
J'ai le même problème, j'ai essayé
ob_implicit_flush (false); code> et vérifiant le résultat de
ob_start () code> pour voir si cela commence, ce qui est apparemment comme il retourne vrai.
Moi aussi, j'ai le même problème. Essayé la chasse implicite mais pas de dés.