ob_end_clean

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_end_cleanClean (erase) the contents of the active output buffer and turn it off

Опис

ob_end_clean(): bool

This function calls the output handler (with the PHP_OUTPUT_HANDLER_CLEAN and PHP_OUTPUT_HANDLER_FINAL flags), discards it's return value, discards the contents of the active output buffer and turns off the active output buffer.

ob_end_clean() will fail without an active output buffer started with the PHP_OUTPUT_HANDLER_REMOVABLE flag.

ob_end_clean() will discard the contents of the active output buffer even if it was started without the PHP_OUTPUT_HANDLER_CLEANABLE flag.

Параметри

У цієї функції немає параметрів.

Значення, що повертаються

Повертає true у разі успіху або false в разі помилки.

Помилки/виключення

If the function fails it generates an E_NOTICE.

Приклади

The following example shows an easy way to get rid of the contents of the active output buffer:

Приклад #1 ob_end_clean() example

<?php
ob_start
();
echo
'Text that won\'t get displayed.';
ob_end_clean();
?>

Прогляньте також

  • ob_start() - Turn on output buffering
  • ob_get_contents() - Return the contents of the output buffer
  • ob_clean() - Clean (erase) the contents of the active output buffer
  • ob_get_clean() - Get the contents of the active output buffer and turn it off
  • ob_end_flush() - Flush (send) the return value of the active output handler and turn the active output buffer off

add a note

User Contributed Notes 2 notes

up
8
Sam Yong - hellclanner at live dot com
13 years ago
Take note that if you change zlib output compression setting in between ob_start and ob_end_clean or ob_end_flush, you will get an error: ob_end_flush() failed to delete buffer zlib output compression

Example:

<?php

ob_start
();

$output = ob_get_contents();

ini_set('zlib.output_compression', '1');

ob_end_clean();

?>

ob_end_clean(); in this example will throw the error.
up
7
John Smith
20 years ago
Note that if you started called ob_start with a callback, that callback will still be called even if you discard the OB with ob_end_clean.

Because there is no way of removing the callback from the OB once you've set it, the only way to stop the callback function from having any effect is to do something like:

<?php
$ignore_callback
= false;
ob_start('my_callback');
...
if(
$need_to_abort) {
$ignore_callback = true;
ob_end_clean();
...
}

function
my_callback(&$buffer) {
if(
$GLOBALS['ignore_callback']) {
return
"";
}
...
}
?>
To Top