Suis-je autorisé à avoir deux ou plusieurs ob_start();
dans mes fichiers php si oui, quelle est la bonne façon de terminer un ob_start();
et commencer un autre?PHP ob_start() question
4
A
Répondre
6
A partir du manuel:
tampons de sortie sont empilables, c'est vous pouvez appeler ob_start(), tandis qu'un autre ob_start() est actif. Assurez-vous simplement que vous appelez ob_end_flush() le approprié nombre de fois. Si plusieurs fonctions de rappel en sortie sont actives, la sortie est filtrée séquentiellement à travers chacune d'elles dans l'ordre d'imbrication .
En plus de l'empilage (imbrication), vous pouvez avoir des blocs séparés en séquence.
<?
ob_start();
echo "Foo";
ob_end_flush(); // outputs buffer contents and turns off output buffering
ob_start();
echo "Bar";
ob_end_flush();
?>
0
Vous pouvez faire plus d'un ob_start() sur une page. Vous terminez ob_start() avec ob_end_clean().
ob_start();
$postOutput = preg_replace('/<img[^>]+./','', ob_get_contents());
ob_end_clean();
echo $postOutput;
Si vous ne faites aucun traitement supplémentaire de '' postOutput' $, alors ob_end_clean() 'fait juste du travail supplémentaire par rapport à' ob_end_flush() ' –
droit, étant donné que ob_end_clean va effacer le tampon dessus. – matthewpavkov