在php运行时关闭output_buffering

时间:2013-06-06 05:43:59

标签: php output-buffering

<?php
ini_set('output_buffering','0');
echo 'Begin ...<br />';
for( $i = 0 ; $i < 10 ; $i++ )
{
    echo $i . '<br />';
    flush();
    ob_flush();
    sleep(1);
}
echo 'End ...<br />';
?>

在上面的代码中,我尝试将output_buffering设置为 off ,但它无效。

输出在脚本执行结束时回显。

2 个答案:

答案 0 :(得分:0)

默认情况下,输出缓冲值设置为“0”。

答案 1 :(得分:0)

不要使用ob_flush,只需在脚本开头使用ob_end_flush即可删除输出缓冲区。

此外,声明页面的字符编码,因此浏览器可以立即显示您的输出,而无需先查看数百个输入字节:

header('Content-Type: text/html; charset=utf-8');

如果您的脚本仍然不起作用,则Web服务器是Apache,您可以创建.htaccess文件,尝试使用以下内容:

php_flag zlib.output_compression Off

顺便说一句,ini_set没用,您还应该包含htmlheadbody元素。至少对于Firefox,包括这些元素也解决了这个问题:

echo '<!DOCTYPE html><html><head><title>test</title></head><body>';
// ...
echo '</body></html>';