©
本文档使用
php.cn手册 发布
这些函数的行为受 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 <= 4.2.3 版本中是 PHP_INI_PERDIR |
这是配置指令的简短说明。
output_buffering
boolean / integer 该选项设置为 On 时,将在所有的脚本中使用输出控制。如果要限制输出缓冲区的最大值,可将该选项设定为指定的最大字节数(例如 output_buffering=4096)。从PHP 4.3.5 版开始,该选项在 PHP-CLI 下总是为 Off。
output_handler
string 该选项可将脚本所有的输出,重定向到一个函数。例如,将 output_handler 设置为 mb_output_handler() 时,字符的编码将被修改为指定的编码。设置的任何处理函数,将自动的处理输出缓冲。
Note:
不能同时使用 mb_output_handler() 和 ob_iconv_handler() ,也不能同时使用 ob_gzhandler() 和 zlib.output_compression。
Note:
只有内置函数可以使用此指令。对于用户定义的函数,使用 ob_start() 。
implicit_flush
boolean
默认为 FALSE
。如将该选项改为 TRUE
,PHP
将使输出层,在每段信息块输出后,自动刷新。这等同于在每次使用
print 、 echo
等函数或每个 HTML 块之后,调用 PHP 中的
flush() 函数。
不在web环境中使用 PHP
时,打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。在
CLI SAPI 的执行模式下,该标记默认为 TRUE
。
参见 ob_implicit_flush() 。
[#1] support at losalgendesign dot com [2013-08-09 04:46:30]
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"); ?>