输出缓冲控制

简介

输出控制函数能够控制何时从脚本发送输出。对以下几种情况中很有用,尤其是当需要在脚本开始输出数据后将消息头发送到浏览器时。输出控制函数不会影响使用 header()setcookie() 发送的消息头,只会影响 PHP 代码中的函数(比如 echo)和数据。

添加备注

用户贡献的备注 1 note

up
50
clancy hood at gmail dot com
16 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.
To Top