运行时配置
这些函数的行为受 php.ini 中的设置影响。
有关 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
将使输出层在每段信息块输出后自动刷新。这等同于在每次调用
print、echo
以及 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
support at losalgendesign dot com ¶10 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"); ?>