当PHP脚本有输出时,输出控制函数可以用这些来控制输出。这在多种不同情况中非常有用,尤其是用来在脚本开始输出 数据后,发送http头信息到浏览器。输出控制函数不影响由 header() 或 setcookie()发送的文件头信息,仅影响象 echo这样的函数和PHP代码块间的数据。
Note:
由于早先的版本的缺陷,当从PHP4.1.x(4.2.x,4.3.x)升级时,必须保证php.ini中的implicit_flush 是 OFF, 否则任何用 ob_start()的输出将在输出中隐藏掉。
Patrick (2009-02-11 20:23:29)
[In English:]
it's seem have performance impact, try this with and without bufferisation ( by output_buffering = 4096, or ob_start + ob_end_flush, it looks similar)
[En Francais:]
Ca semble avoir un fort impact sur les performances aussi, essayez ca avec et sans bufferisation ( par output_buffering = 4096, ou bien ob_start + ob_end_flush, ca semble identique)
<?php
for ($j=1; $j <= 5; $j++) {
list($usec, $sec) = explode(" ",microtime());
$debut[$j] = ((float)$usec + (float)$sec);
echo str_repeat("0123456789",5000) . '<br>' ;
list($usec, $sec) = explode(" ",microtime());
$fin[$j] = ((float)$usec + (float)$sec);
}
for ($j=1; $j <= 5; $j++) {
echo round($fin[$j]-$debut[$j], 5) . '<br>';
}
?>