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 deob_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.