我从PHP官方手册拷贝下来一段关于缓冲的代码,但是执行结果却是错的,求解!
我拷贝代码的地址是:http://fr2.php.net/manual/zh/function.ob-flush.php#109314
我的代码如下,执行后不是逐行显示,而是等了很长时间后,一起出现出来:
header('Content-type:text/html; charset=utf-8');
if (ob_get_level() == 0) ob_start();
for ($i = 0; $i<10; $i++){
echo "<br> Line to show.";
echo str_pad(' ',4096)."\n";
ob_flush();
flush();
sleep(2);
}
echo "Done.";
ob_end_flush();
OS:Mac osx 10.9
webservice: nginx 1.4
php: 5.6
注意flush和ob_flush的区别:ob_flush
操作的是php本身的buffer
flush 操作的是 apache 的 flush,也就是说这个对 nginx是无效果的
nginx下要如下设置试一下:
`fastcgi_max_temp_file_size 0 #禁止磁盘缓冲
fastcgi_buffers 1 1k #把buffer设小`
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。