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()
?
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.