Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Модуль zlib предоставляет возможность сжатия передаваемых страниц (в т.ч. динамических) на лету, если браузер это поддерживает. За сжатие отвечают три параметра в конфигурационном файле php.ini.

Конфигурационные параметры, касающиеся Zlib
Параметр Значение по умолчанию Переменная окружения
zlib.output_compression "Off" PHP_INI_ALL
zlib.output_compression_level "-1" PHP_INI_ALL
zlib.output_handler "" PHP_INI_ALL
Для подробностей и определения переменных PHP_INI_* см. ini_set().

Краткое разъяснение конфигурационных директив.

zlib.output_compression boolean/integer

Сжимать ли страницы. Если значение равно "On" в php.ini или в настройках Apache, страницы будут сжиматься если обозреватель посылает заголовок "Accept-Encoding: gzip" или "deflate". при этом в вывод будут добавлены заголовки "Content-Encoding: gzip" (соответственно "deflate") и "Vary: Accept-Encoding".

Аргументы также могут быть целого типа, так вы можете установить размер буфера (дискретизации) вывода (по умолчанию 4 Кб).

Замечание: output_handler должен быть пустым, если выбрано значение 'On'! Вместо него следует использовать zlib.output_handler.

zlib.output_compression_level integer

Уровень сжатия.

zlib.output_handler string

Если zlib.output_compression активировано здесь, указывать дополнительные обработчики вывода (output handlers) нельзя. Этот параметр делает то же, что и output_handler, но в другом порядке.

Коментарии

In the hopes this will help others - a hard to spot gotcha when implementing zlib.output_compression. if you use flush() anywhere in your script (even right at the end) the compression won't work - you need to let that happen automatically or it ends up being sent uncompressed.
2012-02-29 20:19:38
http://php5.kiev.ua/manual/ru/zlib.configuration.html
Does anyone find these two statements contradictory? Am I not understanding something, or are these statements actually contradicting each other? 

Statement ONE from output_handler:
"output_handler must be empty if this [zlib.output_compression] is set 'On' ! Instead you must use zlib.output_handler."

Statement TWO from zlib.output_handler:
"You cannot specify additional output handlers if zlib.output_compression is activated ..."

Statement ONE says you have to use zlib.output_handler, if zlib.output_compression is turned ON. Statement TWO says that, if zlib.output_compression is turned ON, you cannot use zlib.output_handler. 

what the heck?
2015-03-21 08:42:01
http://php5.kiev.ua/manual/ru/zlib.configuration.html
Автор:
finlanderid at gmail dot com,

you are mixing two separate things and consider them to be the same thing, hence the confusion.

There are two output_handlers:

1. outcontrol.configuration#ini.output-handler

2. zlib.configuration#ini.zlib.output-handler

Now, if you re-read your quotes again with this information it won't be confusing anymore :)
2015-06-18 13:49:21
http://php5.kiev.ua/manual/ru/zlib.configuration.html
@finlanderid, Exactly. As output_handler and zlib.output_handler cant be both set (as per ""<output_handler must be empty if this is set 'On'>""), "different order" refers to?
2017-10-03 13:47:59
http://php5.kiev.ua/manual/ru/zlib.configuration.html
Автор:
Because of possible BREACH attacks when using output compression cross-site scripting should be disallowed. This can be achieved with the same-site cookie attribute:

https://www.sjoerdlangkemper.nl/2016/04/14/preventing-csrf-with-samesite-cookie-attribute/

https://caniuse.com/#feat=same-site-cookie-attribute
2019-08-17 19:01:01
http://php5.kiev.ua/manual/ru/zlib.configuration.html

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