Что можно использовать вместо ob_start ("ob_gzhandler"); - PullRequest
0 голосов
/ 11 января 2011

Что можно использовать вместо ob_start("ob_gzhandler");, что вызывает PHP Warning: Cannot modify header information - headers already sent in Unknown on line 0?

Некоторые, как мне кажется, связанные и / или полезные вопросы, которые задавались ранее:
«Неизвестная» ошибка PHP - что это должно означать?
PHPпредупреждение: заголовки уже отправлены в неизвестном

Ответы [ 3 ]

2 голосов
/ 11 января 2011

Что сработало для меня (наконец-то), так это положить zlib.output_compression в php.ini и установить его в ON, успешно заменив ob_start("ob_gzhandler");

0 голосов
/ 11 января 2011

Если вам нужны альтернативы, вы можете установить в своем php.ini:

zlib.output_compression = On

http://www.php.net/manual/en/zlib.configuration.php

Или в .htaccess, если ваш PHP работает как модуль Apache:

php_flag zlib.output_compression On

Здесь вы можете использовать директиву <Files> или <FilesMatch>, чтобы ограничить сжатие требуемыми файлами.

На самом деле вы также можете установить это свойство в своем PHP-скрипте, но я не думаю, что оно будет работать: ini_set('zlib.output_compression', 'On') ...


Вопрос отладки: если вы установили header('X-something: x'); до ob_start(), вызывает ли функция header() такую ​​же ошибку?

0 голосов
/ 11 января 2011

Просто поместите ob_start("ob_gzhandler") в начале цепочки операторов PHP.Если PHP выдает это предупреждение, это означает, что этот вызов не в начале.

...