挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)不懂社区·好资源不错过·各位资源站大佬欢迎来采集搬运IOS签名/udid证书出售/送证书加群1040456405 ██【我要租此广告位】██
... .
查看: 3673|回复: 0
打印 上一主题 下一主题

Nginx+phpfastcgi下flush实时输出问题

[复制链接]

6

积分

121

主题

8

听众
已帮网友解决0 个问题
好评
-2
贡献
-115
海币
9
交易币
0
跳转到指定楼层
楼主
发表于 2017-5-3 13:42:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


Nginx+phpfastcgi下flush输出问题

标签:

最近因为事务需要,需要运用php的flush输出缓存改写,处理浏览器超时疑问.

开始的测验代码如下:



ob_start();//翻开缓冲区

for ($i=10; $i>0; $i--)

{

    echo $i.‘
‘;

    ob_flush();

    flush();

    sleep(1);

}

ob_end_flush();//输出并封闭缓冲

die();


本认为这么就能1秒钟输出一个数字,可是在nginx+php的环境下,实践发生的结果与预期是不相同的,结果是10秒后数据一次性都输出出来了。

曾经在apache里运转正常,每隔1秒动态改写浏览器输出缓存内容,那是因为apache里没有敞开gzip。纠结了半响,上网查了良久的疑问,最终处理的办法如下:

header("Content-Encoding: none\r\n");

ob_start();//翻开缓冲区

for ($i=10; $i>0; $i--)

{

    echo str_repeat(" ",1024*64);

    echo $i.‘
‘;

    ob_flush();

    flush();

    sleep(1);

}

ob_end_flush();//输出并封闭缓冲

die;


解说下为啥要这么写这段代码:

首先:header("Content-Encoding: none\r\n");处理nginx在装备文件中敞开了gzip的疑问,假如nginx的gzip的装备项是on,而不加这行代码,结果仍是相同等程序履行结束后一次性的把数据输出出来;本来也能够不必加这行代码,直接在nginx装备文件中封闭gzip,可是不能因为一个小需要而改nginx的装备吧。

其次:echo str_repeat(" ",1024*64)这行代码也是重点,一开始我也没有加这行代码,最终的完成的作用仍是一次性的把数据输出出来,形成的原因是nginx中的    fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;

这两个装备表明Nginx会缓冲PHP-FPM输出的信息,当到达64k时才会将缓冲区的数据发送给客户端,因为咱们只输出了一个数字,远远不到64k这个上限,所以在程序输出之前加上echo str_repeat(" ",1024*64);1024*64值依据自己的nginx装备进行修正。

最终一点:ob_flush()和flush()要联系运用,并且ob_flush要在flush之前,flush才是真实的输出。



联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:Thinkphp3.2.3开发实战,汽车租赁网站CP加Wap 全套详细教程
下一篇:分享个390G的PHP学习动画教程+部分源码
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:xhzlw@foxmail.com),本站将立即改正。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2025-4-4 09:12 , Processed in 0.124049 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表