Поведение этих функций зависит от установок в 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. |
Краткое разъяснение конфигурационных директив.
output_buffering
boolean/integer
Вы можете разрешить буферизацию вывода для всех файлов, установив эту директиву в 'On'. Если вы хотите ограничить размер буфера до определенного размера, вы можете установить не 'On', а максимальное количество байт в этой директиве (например, output_buffering=4096). Начиная с PHP 4.3.5 эта директива всегда отключена в 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().