PHP: ob_get_level - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

ob_get_status ob_get_length

Last updated: Fri, 26 Jan 2007

view this page in

# ob_get_level

(PHP 4 >= 4.2.0, PHP 5)

ob_get_level -- Return the nesting level of the output buffering mechanism

## Description

int ob_get_level ( void )

This will return the level of nested output buffering handlers or zero if output buffering is not activated.

See also ob_start() and ob_get_contents().

add a note User Contributed Notes
ob_get_level
18-May-2005 08:45
`Sometimes, ob_get_level() may be off by 1 because at the start of the script, it will return 1 even if ob_start() has never been called (and clearing the output buffer via ob_end_clean() and the like can be done without error). As a result, the first ob_start() will have an ob_get_level() of 2, the second will be 3, and so on.
I'm not sure if this is a PHP 5 thing or possibly because our server is set to gzip all html documents.
Also, up until at least PHP 5.0.4 (current version), ob_get_level() will always return 0 inside a destructor. This happens because the garbage collection for output buffers has already done before the destructor is called. If you want to do something with the output buffer from within an object before the script exits, using a callback function with ob_start() is the way to go.`
bonzini at gnu dot org
07-Jul-2004 09:03
`Even under older PHP, you can decide if output buffering is active (i.e. ob_get_level() > 0) using
$ob_active = ob_get_length () !== FALSE
Paolo`
tit dot petric at nospam dot telemach dot net
22-Jun-2002 12:01
`function condor_error($errno, $errstr, $errfile, $errline)
{
$errors = array(E_USER_ERROR, E_ERROR, E_PARSE);
if (in_array($errno,$errors)) {
while (ob_get_level()) {
ob_end_clean();
}
echo "<B>FATAL</B> [".$errno."] ".$errstr."<br>\n";
echo "Fatal error at line ".$errline." of file ".$errfile;
echo ", PHP ".PHP_VERSION." (".PHP_OS.")<br>\n";
echo "Aborting...<br><br>\n\n";
exit;
}
}
set_error_handler("condor_error");
in case you wanted to use a function to use for deleting all buffered output (to clearly display errors), you have it above
this eliminates the need for ob_end_clean_all() in php. good code :)`
add a note
ob_get_status ob_get_length

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST