我在一个PHP项目上工作,并使用flush().
我进行了大量搜索,发现PHP将大量的脚本输出以大块的形式发送到浏览器,并且在脚本终止时不会发送所有的大量数据.
我想知道此数据的大小,我的意思是,PHP将输出发送到浏览器必须输出多少字节.
解决方法:
不仅仅PHP会对数据进行分块;实际上,这是Apache(或Tomcat等)的工作.这就是为什么默认设置是关闭PHP中的“块”并将其留给Apache.即使您从PHP强制进行刷新,也仍然会被Apache困住.从手册中:
flush() may not be able to override the buffering scheme of your web
server and it has no effect on any client-side buffering in the
browser. It also doesn’t affect PHP’s userspace output buffering
mechanism. This means you will have to call both ob_flush() and
flush() to flush the ob output buffers if you are using those.
维基百科上有一篇有关传输编码/分块的文章:http://en.wikipedia.org/wiki/Chunked_transfer_encoding
Apache使用GZIP或deflate编码变得更加复杂.您需要点击apache服务器以了解如何对其进行配置.
标签:flush,php 来源: https://codeday.me/bug/20191011/1890482.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。