PHP 输出控制函数
PHP 提供了一套函数来控制何时向浏览器发送哪些内容。这被称为输出控制。
输出可以来自以下任一来源:
echo、print、printf、print_r... 以及其他类似的函数和语句
PHP 的通知、警告和错误
在 <?php ?> 标签之外的任何内容
PHP 和其后端可以在将输出发送给用户之前将其保存在缓冲区中。
注意:输出控制函数可以创建任意数量的输出缓冲区。输出缓冲区捕获程序给出的输出。每个新的输出缓冲区都放在输出缓冲区堆栈的顶部,并且它提供的任何输出都将被其下方的缓冲区捕获。输出控制函数仅处理最顶部的缓冲区,因此必须移除最顶部的缓冲区才能控制其下方的缓冲区。
PHP 输出控制函数
方法 |
函数 |
flush()
尝试将系统输出缓冲区中的内容发送到浏览器。
ob_clean()
删除最顶层输出缓冲区中的所有内容。
ob_end_clean()
删除最顶层的输出缓冲区及其所有内容。
ob_end_flush()
删除最上面的输出缓冲区并输出其内容。
ob_flush()
输出最顶层输出缓冲区的内容并清除缓冲区。
ob_get_clean()
返回最顶层输出缓冲区的所有内容并清除缓冲区。
ob_get_contents()
返回最顶层输出缓冲区的内容。
ob_get_flush()
输出并返回最顶层输出缓冲区的内容,然后删除该缓冲区。
ob_get_length()
返回最顶层输出缓冲区中数据的字节数。
ob_get_level()
返回一个数字,指示堆栈上有多少个输出缓冲区。
ob_get_status()
返回有关输出缓冲区的信息。
ob_gzhandler()
用作 ob_start() 的回调函数,以在将缓冲区内容发送到浏览器时压缩其内容。
ob_implicit_flush()
打开或关闭隐式冲洗。
ob_list_handlers()
返回最顶层输出缓冲区正在使用的回调函数名称数组。
ob_start()
创建一个新的输出缓冲区并将其添加到堆栈的顶部。
output_add_rewrite_var()
用于向输出中的任何URL追加查询字符串参数。
output_reset_rewrite_vars()
移除由 output_add_rewrite_var() 添加的所有变量。
安装
PHP 输出控制函数是 PHP 核心的一部分。使用这些函数无需进行任何安装。
运行时配置
输出控制函数的行为受 php.ini 中的设置影响:
名称 |
默认值 |
描述 |
版本 |
output_buffering
"0"
为所有 PHP 文件默认启用输出缓冲。
4
output_handler
NULL
设置处理所有输出缓冲区输出的默认函数的名称。
4
implicit_flush
"0"
启用隐式刷新,这会导致在每个输出语句上直接将输出发送到浏览器。
4
url_rewriter.tags
"a=href,area=href, frame=src,form=,fieldset="
指示 URL 重写器(output_add_rewrite_var() 函数)可以修改哪些 HTML 标签和属性。
4.3
url_rewriter.hosts
$_SERVER['HTTP_HOST'] 的当前值
默认情况下,URL重写仅在服务器自己的URL上完成。
为了允许重写其他网站的 URL,请在此处设置其他网站的主机名。
7.1