Overview
KB
Technical FAQ
PHP Manual
CSS2 Manual
HTML Manual
JS Guide
JS Reference
PhpDock Manual
Nu-Coder Manual
PhpExpress Manual
PHP Joomla
Development
Learn PHP
 
<What Output Is Buffered?Buffer Size>
^User-Level Output BuffersLast updated: Mon, 26 Oct 2026

Nesting Output Buffers

If there is an output buffer active when a new buffer is started, the new buffer will be nested inside the previously active buffer. The inner buffer will behave the same way regardless whether it is nested but output buffered by it will not be buffered by the outer buffer. Only output flushed by the inner buffer will be buffered by the outer buffer.

Most ob_* functions only work with the active output buffer (the last one started) therefore only the active buffer can be flushed, cleaned and turned off. The functions that work with other buffers are ob_list_handlers() which returns the list of all output handlers in use and ob_get_status() which can return information on the active buffer only or on all buffers in use.

Calling ob_get_level() or ob_get_status() will return the nesting level of the active output buffer.

Caution

The value for identical levels between ob_get_level() and ob_get_status() is off by one. For ob_get_level() the first level is 1, whereas for ob_get_status() the first level is 0.


<What Output Is Buffered?Buffer Size>
^User-Level Output BuffersLast updated: Mon, 26 Oct 2026