Search code examples
phpoutput-buffering

PHP output buffering using ob_start(): What happens on termination of the script?


I'm using ob_start() to turn on output buffering in my script.

When my script terminates, a) is the output buffer erased automatically and b) is output buffering turned off automatically?

Or must I use something like ob_end_clean()?

Ref: http://php.net/manual/en/function.ob-start.php


Solution

  • Any active output buffers are automatically flushed at the end of the script. All your buffered output will be flushed to the client, even if you do not explicitly flush the buffer. The default is to flush, not to discard.

    You don't "have to" turn off output buffering. Just in case you may be under this impression: output buffering will not "stay on" after the script ends. Output buffering is a per-instance thing, "leaving it on" in one script is not going to affect another script.