运行时配置

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

输出控制配置选项
名称 默认值 可更改 变更日志
output_buffering "0" INI_PERDIR  
output_handler null INI_PERDIR  
implicit_flush "0" INI_ALL  
url_rewriter.tags "form=" INI_ALL 从 PHP 7.1.0 开始,此 INI 设置仅影响 output_add_rewrite_var()。在 PHP 7.1.0 之前,此 INI 设置启用透明的会话 ID 支持(参见 session.trans_sid_tags)。
url_rewriter.hosts $_SERVER['HTTP_HOST'] 用作默认值。 INI_ALL 从 PHP 7.1.0 开始提供
有关 INI_* 模式的更多详细信息和定义,请参见 配置设置的位置

以下是配置指令的简要说明。

output_buffering bool/int

可以通过将此指令设置为 "On" 来启用所有文件的输出缓冲。要限制缓冲区的大小,可以使用与允许的最大字节数相对应的数字/数量,而不是 "On" 作为此指令的值。例如 output_buffering=4096。此指令在 PHP-CLI 中始终为 Off。

output_handler string

脚本的输出可以重定向到一个函数。例如,将 output_handler 设置为 mb_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_sidoutput_add_rewrite_var())。

注意:

此指令只能使用内置函数。对于用户定义的函数,请使用 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 指定 output_add_rewrite_var() 值重写 URL 的 HTML 标签和属性。默认为 "form=" 添加 "form=" 或任何 form 属性将向 form 添加一个隐藏的 input 元素,该元素具有传递给 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"

添加注释

用户贡献的注释 1 注释

support at losalgendesign dot com
11 年前
在 output_buffering 上使用 "OFF" 或不使用任何值将禁用标头修改,如重定向或内容类型或内容处置,导致我们通常归因于标头修改之前的输出的错误

警告:无法修改标头信息 - 标头已由 (输出起始于 C:\PATH\filename.php:1) C:\PATH\filename.php 在第 1 行发送

具有 output_buffering = OFF 的示例代码,会导致此行为。将其更改为 "ON" 或赋予其值可能会导致正常行为。

<?php header("Location: https://php.net"); ?>

或者

<?php header("Content-Type: text/Calendar"); ?>
<?php header
("Content-Disposition: inline; filename=appointment.ics"); ?>
To Top