影响 PHP 行为的扩展
在线手册:中文 英文
PHP手册

输出缓冲控制


影响 PHP 行为的扩展
在线手册:中文 英文
PHP手册
PHP手册 - N: 输出缓冲控制

用户评论:

clancy hood at gmail dot com (11-Apr-2009 07:33)

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.