2024年PHP开发者大会日本站

运行时配置

这些函数的行为受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指定HTML标签和属性,其中URL由output_add_rewrite_var()值重写。默认为"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”或无值将禁用标头修改,例如重定向或content-type或content-disposition,这会导致我们通常归因于标头修改之前的输出的错误。

警告:无法修改标头信息 - 标头已由 (输出起始于 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