开发者

PHP buffered output depending on server setting?

I'm using the following code to produce buffered output on a db maintenance script:

function flush_buffers($string){
    echo $string;
    ob_end_flush();
    ob_flush();
    flush();
    ob_start();

}

While this works as expected on my local Wamp server, showing outpu开发者_如何学Pythont each time the function is invoked, it doesn't on the online web server: here the output is sent only once the script has ended. How is that?


Make sure output buffering is off in your php.ini file on your web server.

You also don't have to flush manually every time, you can make use of:

ob_implicit_flush(true);
ob_end_flush();

You should also remember that this is still browser specific. The browser will decide whether to show the output. Some browsers (for example IE6) won't output anything until it has enough characters to output.

The following will turn off everything that could cause unwanted output buffering.

@apache_setenv('no-gzip', 1);
@ini_set('zlib.output_compression', 0);
@ini_set('implicit_flush', 1);
for ($i = 0; $i < ob_get_level(); $i++) { ob_end_flush(); }
ob_implicit_flush(1);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜