ScotlandPHP

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

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

Конфигурационные опции управления выводом
Имя По умолчанию Место изменения Список изменений
output_buffering "0" PHP_INI_PERDIR  
output_handler NULL PHP_INI_PERDIR Доступно с PHP 4.0.4.
implicit_flush "0" PHP_INI_ALL PHP_INI_PERDIR в PHP <= 4.2.3.
url_rewriter.tags "a=href,area=href,frame=src,form=,fieldset=" PHP_INI_ALL Доступно с PHP 4.0.4. До PHP 7.1.0, использовалась для установки перезаписи "trans sid" сессии. С PHP 7.1.0, используется только output_add_rewrite_var().
url_rewriter.hosts По умолчанию используется $_SERVER['HTTP_HOST']. PHP_INI_ALL Доступно с PHP 7.1.0
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

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

output_buffering boolean/integer

Вы можете разрешить буферизацию вывода для всех файлов, установив эту директиву в 'On'. Если вы хотите ограничить размер буфера до определенного размера, вы можете установить не 'On', а максимальное количество байт в этой директиве (например, output_buffering=4096). Эта директива всегда отключена в PHP-CLI.

output_handler string

Вы можете перенаправить весь вывод вашего скрипта в функцию. Для примера, если вы установите output_handler в mb_output_handler(), то кодировка символов прозрачно преобразуется в соответствии с указанной кодировкой. Настройка на любой обработчик вывода автоматически включает буферизацию вывода.

Замечание:

Вы не можете использовать вместе mb_output_handler() с ob_iconv_handler() и вы не можете использовать вместе ob_gzhandler() и zlib.output_compression.

Замечание:

Только встроенные функции могут использоваться с этой директивой. Для функции, определенной пользователем, используйте ob_start().

implicit_flush boolean

FALSE по умолчанию. Изменение значения в TRUE указывает PHP не складывать данные в буфер, а после каждого отправленного блока автоматически отправлять данные в выходной слой. Это эквивалентно вызову PHP-функции flush() после каждого вызова print или echo для каждого HTML-блока.

При использовании PHP в web-среде, включение этой опции приведет к серьезной потере производительности, поэтому рекомендуется использовать ее только для отладки. Это значение по умолчанию имеет TRUE при работе в CLI SAPI.

См. также ob_implicit_flush().

url_rewriter.tags string
url_rewriter.tags определяет, какие HTML-теги будут перезаписаны значениями output_add_rewrite_var(). По умолчанию a=href,area=href,frame=src,input=src,form= form является специальным тегом. <input hidden="session_id" name="session_name"> добавляется как переменная формы.

Замечание: До PHP 7.1.0, url_rewriter.tags использовался для указания session.trans_sid_tags. Начиная с PHP 7.1.0, fieldset больше не рассматривается как специальный тег.

url_rewriter.hosts string
url_rewriter.hosts указывает, какие хосты перезаписани для включения значений output_add_rewrite_var(). По умолчанию $_SERVER['HTTP_HOST']. Несколько хостов можно указать перечислив их через запятую, между хостами не должно быть пробелов. Т.е. php.net,wiki.php.net,bugs.php.net

add a note add a note

User Contributed Notes 1 note

up
3
support at losalgendesign dot com
4 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"); ?>
To Top