ob_end_clean

(PHP 4, PHP 5)

ob_end_cleanОчищает (стирает) буфер вывода и отключает буферизацию вывода

Описание

bool ob_end_clean ( void )

Эта функция удаляет содержимое самого верхнего буфера вывода и отключает эту буферизацию. Если вы хотите использовать содержимое буфера, то вам необходимо вызвать ob_get_contents() перед ob_end_clean(), так как все содержимое буфера удаляется при вызове ob_end_clean().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Основной причиной неудачного завершения работы функции является ее вызов без активной буферизации, или если буфер не может быть удален (специальный тип буфера).

Ошибки

Если функция завершается ошибкой генерируется E_NOTICE.

Список изменений

Версия Описание
4.2.0 Добавлено возвращаемое значение (boolean).

Примеры

Следующий пример показывает простой способ избавиться от всех выходных буферов:

Пример #1 Пример использования функции ob_end_clean()

<?php
ob_start
();
echo 
'Текст, который не отобразится.';
ob_end_clean();
?>

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_get_contents() - Возвращает содержимое буфера вывода
  • ob_flush() - Сброс (отправка) буфера вывода

Коментарии

You might want to prevent your script from executing if the client already has the latest version.
You can do it like so:

ob_start();

$mtime=filemtime($_SERVER["SCRIPT_FILENAME"])-date("Z");
$gmt_mtime = date('D, d M Y H:i:s', $mtime) . ' GMT';

$headers = getallheaders();

if(isset($headers["If-Modified-Since"])) {
    if ($headers["If-Modified-Since"] == $gmt_mtime) {
        header("HTTP/1.1 304 Not Modified");
        ob_end_clean();
        exit;
    }
}

$size=ob_get_length();
header("Last-Modified: ".$gmt_mtime);
header("Content-Length: $size");
ob_end_flush();

Instead of checking the If-Modified-Since-Header against the date of the last modification of the script, you can of course query a database or take any other date that is somehow related to the modification of the result of your script.

You can for instance use this technique to generate images dynamically. If the user indicates he already has a version of the image by the If-Modified-Since-Header, there's no need to generate it and let the server finally discard it because the server only then interpretes the If-Modified-Since-Header.
This saves server load and shortens response-times.
2003-06-27 09:32:37
http://php5.kiev.ua/manual/ru/function.ob-end-clean.html
Автор:
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 
"";
  }
  ...
}
?>
2004-06-04 07:39:12
http://php5.kiev.ua/manual/ru/function.ob-end-clean.html
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.
2011-05-05 01:14:35
http://php5.kiev.ua/manual/ru/function.ob-end-clean.html
If there is no confidence about output buffering (enabled or not),
you may try these guards:

<?php

while (ob_get_level() !== 0) {
 
ob_end_clean();
}

// or

while (ob_get_length() !== false) {
 
ob_end_clean();
}

?>
2020-04-23 12:34:11
http://php5.kiev.ua/manual/ru/function.ob-end-clean.html

    Поддержать сайт на родительском проекте КГБ