ob_start() doesn't seem to be stopping any output so when I flush the buffer it's doubling up
<?php
ob_start();
echo "Text..... <br />";
echo ob_get_flush();
?>
Outputs
Text.....
Text.....
But I was expecting
Text.....
Any ideas ?
Thanks
Remove the echo on the last line.
ob_get_flush()
implicitly prints the stored output and also returns it so you're printing it out twice.
You may have confused ob_get_flush()
with ob_get_clean()
try:
<?php
ob_start();
echo "Text..... <br />";
ob_get_flush();
?>
from http://php.net/manual/en/function.ob-get-flush.php
Flush the output buffer, return it as a string and turn off output buffering
Flush the output means: it sends the output to the browser or the commandline.
return the string means: it returns the string, so you can store the flushed string in a variable. And since you're echo
ing this string you get the output a second time.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With