Настройка во время выполнения
Поведение этих функций зависит от установок в php.ini.
Дополнительная информация и описания режимов
INI_* даны в разделе «
Места установки параметров конфигурации».
Краткое разъяснение конфигурационных
директив.
-
output_buffering
bool/integer
-
Чтобы включить буферизацию вывода для всех файлов, директиве устанавливают
значение «On»
.
Чтобы ограничить размер буфера, вместо «On»
можно указать число, которое будет соответствовать
количеству байтов, ограничивающих размер буфера.
Например — output_buffering=4096
.
-
output_handler
string
-
Разрешено перенаправлять вывод скриптов в функцию.
Например, если установить функцию mb_output_handler()
в качестве значения директивы output_handler
,
кодировка символов будет прозрачно преобразовываться в заданную кодировку.
Установка любого обработчика вывода автоматически включает буферизацию вывода.
Замечание:
Нельзя использовать вместе функции mb_output_handler()
и ob_iconv_handler(),
а функцию ob_gzhandler()
и директиву zlib.output_compression
нельзя использовать ни с одним из следующих:
с функцией mb_output_handler(),
с функцией ob_gzhandler(),
с директивой zlib.output_compression,
с обработчиком «URL-Rewriter»
(смотрите описание директивы session.use_trans_sid
и функции output_add_rewrite_var()).
Замечание:
С директивой разрешено использовать только встроенные функции.
Для пользовательских функций вызывают функцию ob_start().
-
implicit_flush
bool
-
Значение по умолчанию — false
. Изменение значения на true
указывает PHP не сохранять
данные в буфер, а после каждого отправленного блока автоматически
отправлять данные в выходной слой. Это эквивалентно вызову PHP-функции
flush() после каждого вызова функции вывода
(например, print или echo)
и каждого HTML
-блока.
При использовании PHP в веб-среде, включение этой опции
приведёт к серьёзной потере производительности, поэтому
рекомендуется использовать её только для отладки. Это значение
по умолчанию имеет true
при работе в CLI SAPI
.
Сморите также ob_implicit_flush().
-
url_rewriter.tags
string
-
Директива
url_rewriter.tags
определяет HTML-теги и атрибуты,
в которых URL-адреса перезаписываются значениями функции output_add_rewrite_var().
Значение по умолчанию — «form=»
.
Добавление значения «form=»
или любого атрибута формы (form
)
добавит скрытый элемент input
к форме (form
),
с артибутом с указанными именем и значением для каждой пары имя-значение, переданной в функцию
output_add_rewrite_var().
Предостережение
Если в директиву url_rewriter.tags
добавить один и тот же тег больше одного раза,
при перезаписи URL будет обработано только первое вхождение.
Замечание:
До PHP 7.1.0 надо было использовать
url_rewriter.tags
для указания session.trans_sid_tags.
-
url_rewriter.hosts
string
-
Директива
url_rewriter.hosts
указывает, какие хосты перезаписываются,
чтобы включить в них значения функции output_add_rewrite_var().
По умолчанию директиве установлено значение $_SERVER['HTTP_HOST']
.
Разрешено указывать несколько хостов,
перечислив их через запятую без пробелов.
Например, «php.net,wiki.php.net,bugs.php.net»
.
support at losalgendesign dot com ¶11 years ago
Using "OFF" or no value on output_buffering will disable header modifications, like redirects or content-type or content-disposition resulting in the error we commonly attribute to output before header modifications:
Warning: Cannot modify header information - headers already sent by (output started at C:\PATH\filename.php:1) C:\PATH\filename.php on line 1
Example code with output_buffering = OFF which results in this behavior. Changing it to "ON" or giving it a value will likely cause normal behavior.
<?php header("Location: http://www.php.net"); ?>
or
<?php header("Content-Type: text/Calendar"); ?>
<?php header("Content-Disposition: inline; filename=appointment.ics"); ?>