Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5)

ob_gzhandler - ob_start callback-функция для буфера вывода gzip.

Описание

string ob_gzhandler (string buffer [, int mode])

Примечание: mode был введён в PHP 4.0.5.

ob_gzhandler() предназначена для использования в качестве callback-функции для ob_start(), чтобы облегчить отправку gz-кодированных данных web-браузерам, поддерживающим сжатие web-страниц. Прежде чем ob_gzhandler() отправит сжатые данные, она определяет, какой тип кодирования содержимого принимает браузер ("gzip", "deflate" или вообще никакое), и возвратит его содержимое соответствующим образом. Поддерживаются все браузеры, отправляющие корректную шапку/header о том, что они принимают сжатые web-страницы.

Второй параметр этой функции - это флаг, который разрешает или запрещает отправку заголовка и окончания сжатого потока. Так как вызовов ob_start с ob_gzhandler у вас может быть несколько, а заголовок должен быть только один.

Пример 1. ob_gzhandler()

ob_start("ob_gzhandler");
?>

<html>
<body>
<p>This should be a compressed page.
</html>
<body>

Замечание: для использования ob_gzhandler() требуется zlib библиотека.

Замечание: You cannot use both ob_gzhandler() and zlib.output_compression. Also note that using zlib.output_compression is preferred over ob_gzhandler().

Пример 2. Проверка поддерживает ли браузер буферизацию?

if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler");
else ob_start();

Пример 3. Указание в заголовке размера

ob_start('ob_gzhandler');
?>

.... your css content ...

<?php
header("Content-Type: text/css");
header("Content-Length: ".ob_get_length());
ob_end_flush();

Смотрите также: ob_start() и ob_end_flush().

Все функции буферизация
Описание на ru2.php.net
Описание на php.ru