2013-08-05 3 views
0

j'ai un code qui effectue les opérations suivantes:PHP: Qu'est-ce qui se passe après la fin de mise en mémoire tampon de sortie

<?php 
ob_flush(); 
ob_start(); 
echo $something; 
ob_end_flush(); 

echo $another_thing; 
?> 

Je peux voir $something mais pas $another_thing;

Selon le ob_end_flush manuel() tourne juste à côté de mise en mémoire tampon de sortie , donc si tel est le cas, pourquoi ne puis-je voir $another_thing; la même chose que si je l'avais écrit sans mise en mémoire tampon de sortie:

<?php 
echo $something; 
echo $another_thing; 
?> 

Bien que je ne voyais pas pourquoi cela devrait fonctionner, j'ai décidé d'essayer d'appeler flush() et ob_flush() après echo $another_thing; mais cela n'a pas aidé non plus.

Quelle est la bonne façon de faire cela, et pourquoi ce qui précède ne fonctionne pas?

Merci

+0

fonctionne pour moi http://phpfiddle.org/main/code/06s-kmj, peut-être $ another_thing est vide ou non imprimable? – Orangepill

+0

Merci - voir ma réponse ci-dessous s'avère que le buffer de sortie n'a rien à voir avec ça. – ec2011

Répondre

0

Il s'avère que le problème était ailleurs!

Au cours de la définition $something; ci-dessus, j'appelais une série de fonctions dans un grand modèle et quelque part il y avait une instruction exit, donc le problème n'avait rien à voir avec la mise en mémoire tampon de sortie!

Questions connexes