输出控制功能允许您控制何时从脚本发送输出。这在多种不同的情况下非常有用,特别是当您的脚本开始输出数据后需要将标头发送到浏览器时。

输出控制函数不会影响使用 header() 或 setcookie() 发送的标头,只会影响 echo 等函数和PHP块之间的数据代码。

安装

使用这些功能无需安装。这些函数是 PHP 核心的一部分。

运行时配置

这些函数的行为受 php.ini 中的设置影响。请参阅运行时配置

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()gzip 输出缓冲区的 ob_start 回调函数。
ob_list_handlers()列出所有正在使用的输出处理程序。
ob_start()打开输出缓冲。
output_add_rewrite_var()添加 URL 重写器值。
output_reset_rewrite_vars()重置 URL 重写器值。

PHP 输出控制预定义常量

下面的常量是始终作为 PHP 核心的一部分提供。

常量类型描述
PHP_OUTPUT_HANDLER_START整数表示输出缓冲已开始。
PHP_OUTPUT_HANDLER_WRITE整数表示输出缓冲区正在刷新,并且有数据要输出。
PHP_OUTPUT_HANDLER_FLUSH整数表示缓冲区已刷新。
PHP_OUTPUT_HANDLER_CLEAN整数表示输出缓冲区已被清理。
PHP_OUTPUT_HANDLER_FINAL整数表示这是最终的输出缓冲操作。
PHP_OUTPUT_HANDLER_CONT整数表示缓冲区已被刷新,但输出缓冲将继续。这是 PHP_OUTPUT_HANDLER_WRITE 的别名。
PHP_OUTPUT_HANDLER_END整数表示输出缓冲已结束。这是 PHP_OUTPUT_HANDLER_FINAL 的别名。
PHP_OUTPUT_HANDLER_CLEANABLE整数控制是否可以清理由ob_start() 创建的输出缓冲区。
PHP_OUTPUT_HANDLER_FLUSHABLE整数控制是否可以刷新由ob_start() 创建的输出缓冲区。
PHP_OUTPUT_HANDLER_REMOVABLE整数控制是否可以在脚本结束前删除ob_start() 创建的输出缓冲区。
PHP_OUTPUT_HANDLER_STDFLAGS整数

默认的输出缓冲区标志集;目前相当于

 PHP_OUTPUT_HANDLER_CLEANABLE | 

PHP_OUTPUT_HANDLER_FLUSHABLE | 

PHP_OUTPUT_HANDLER_FLUSHABLE | 

PHP_OUTPUT_HANDLER_REMOVABLE。