What Output Is Buffered?

- « User-Level Output Buffers

- Nesting Output Buffers »

- PHP Manual
- User-Level Output Buffers
- What Output Is Buffered?

## What Output Is Buffered?

PHP's user-level output buffers buffer all output after they are started until they are turned off or the script ends. Output in the context of PHP's user-level output buffer is everything that PHP would display or send back to the browser. In practical terms, output is non-zero length data that is:

- outside of the `<?php ?>` tags
- printed by language constructs and functions whose explicit purpose is to output user provided variables or strings such as echo, print, printf(), var_dump(), var_export(), vprintf()
- printed by functions whose purpose is to collect and output data/information on the running script or PHP such as debug_print_backtrace(), phpcredits(), phpinfo(), ReflectionExtension::info()
- printed by PHP on an uncaught exception or an unhandled error (subject to the settings of display_errors and error_reporting)
- anything written to `php://output`

> Note: Data that is written directly to `stdout` or passed to an SAPI function with a similar functionality will not be captured by user-level output buffers. This includes writing data to `stdout` with fwrite() or sending headers using header() or setcookie().