运行时配置

这些函数的行为受 php.ini 中的设置影响。

输出控制配置选项
名字 默认 可修改范围 更新日志
output_buffering "0" PHP_INI_PERDIR  
output_handler NULL PHP_INI_PERDIR  
implicit_flush "0" PHP_INI_ALL  
url_rewriter.tags "a=href,area=href,frame=src,form=,fieldset=" PHP_INI_ALL 在 PHP 7.1.0 之前,用于设置 session 的 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 bool/int

该选项设置为“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 将使输出层在每段信息块输出后自动刷新。这等同于在每次调用 printecho 以及 HTML 块之后,调用 PHP 中的 flush() 函数。

在 Web 环境中使用 PHP 时,打开这个选项会严重影响性能,通常只推荐在调试时使用。在 CLI SAPI 操作时,此值默认为 true

参见 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
5
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"); ?>
To Top