Настройка во время выполнения
Поведение этих функций зависит от установок в php.ini.
Для подробного описания констант
PHP_INI_*, обратитесь к разделу
Где могут быть установлены параметры конфигурации.
Краткое разъяснение конфигурационных
директив.
-
output_buffering
bool/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
bool
-
false
по умолчанию. Изменение значения на true
указывает PHP не сохранять
данные в буфер, а после каждого отправленного блока автоматически
отправлять данные в выходной слой. Это эквивалентно вызову PHP-функции
flush() после каждого вызова
print или echo для
каждого HTML
-блока.
При использовании PHP в веб-среде, включение этой опции
приведёт к серьёзной потере производительности, поэтому
рекомендуется использовать её только для отладки. Это значение
по умолчанию имеет 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
support at losalgendesign dot com ¶9 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"); ?>