PHP fopen和file_get_contents限制了下载速度,为什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP fopen和file_get_contents限制了下载速度,为什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含908字,纯文字阅读大概需要2分钟。
内容图文
![PHP fopen和file_get_contents限制了下载速度,为什么?](/upload/InfoBanner/zyjiaocheng/660/4b0376759baa46658c569f6031a73a65.jpg)
我正在尝试使用PHP检索远程文件(6MB文本文件),并且我注意到fopen的速度限制为100KB / s,file_get_contents的速度限制为15KB / s.
服务器上带有wget的Howewer,速度超过5MB / s.
是什么控制这些速度?
我用nethogs检查了实时速度.
解决方法:
wget非常有用,它可以镜像站点,它实际上可以解析页面中的链接并下载文件.
file_get_contents不会发送“连接” HTTP标头,因此远程Web服务器默认情况下认为这是一个保持活动的连接,并且直到15秒后才关闭TCP流(这可能不是标准值-取决于服务器配置).
如果HTTP有效负载长度达到响应Content-Length HTTP标头中指定的长度,则普通浏览器会认为页面已完全加载. File_get_contents不会这样做,这很可惜.
解
因此,如果您想知道解决方案,则为:
$context = stream_context_create(array('http' => array('header'=>'Connection: close\r\n')));
file_get_contents("http://www.something.com/somepage.html",false,$context);
事情只是告诉下载完成后远程Web服务器关闭连接,因为file_get_contents不够智能,无法使用响应Content-Length HTTP标头自行完成连接.
内容总结
以上是互联网集市为您收集整理的PHP fopen和file_get_contents限制了下载速度,为什么?全部内容,希望文章能够帮你解决PHP fopen和file_get_contents限制了下载速度,为什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。