输出缓冲控制
- 简介
- 安装/配置
- 预定义常量
- 输出缓冲
- 冲刷系统缓冲区
- 用户级输出缓冲区
- 示例
- 输出控制 函数
- 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_implicit_flush — 打开/关闭绝对刷送
- ob_list_handlers — 列出所有使用的输出处理程序
- ob_start — 打开输出控制缓冲
- output_add_rewrite_var — 添加 URL 重写器的值
- output_reset_rewrite_vars — 重设 URL 重写器的值
+添加备注
用户贡献的备注 1 note
clancy hood at gmail dot com ¶
15 years ago
The manual is a little shy on explaining that output buffers are nested, and that "turns off output buffering" means turning off the highest nested buffer. See ob_get_level (for a useful function, but still no explanation)
<?php
ob_start();
echo "1:blah\n";
ob_start();
echo "2:blah";
// ob_get_clean() returns the contents of the last buffer opened. The first "blah" and the output of var_dump are flushed from the top buffer on exit
var_dump(ob_get_clean());
exit;
?>
puts:
1:blah
string(6) "2:blah"
Prior to realising this, I had thought PHP's ob functionality left more to be desired. I *really* wish I knew earlier.