开发者

PHP buffered output depending on server setting?

开发者 https://www.devze.com 2023-03-13 21:01 出处:网络
I\'m using the following code to produce buffered output on a db maintenance script: function flush_buffers($string){

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

精彩评论

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

关注公众号