仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 573|回复: 6
打印 上一主题 下一主题

[学习教程] PHP教程之php限定文件下载速率的功效

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:13:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
不过语法好学,但是怎么用语法来实现每个人都有每个人的方式,几乎是各有千秋。然而借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。偶然候你会出于某种目标而请求把下载文件的速率加快一些,比方你想完成文件下载进度条功效。限定下载速率最年夜的优点是节俭带宽,制止瞬时流量过年夜而形成收集梗塞。本文将和你分享怎样经由过程php代码来完成限定文件的下载速率。
起首来看看使用php限定文件下载速率的代码:
  1. <?php//将发送到客户真个当地文件$local_file=www.Alixixi.com.zip;//文件名$download_file=your-download-name.zip;//设置下载速度(=>31.2kb/s)$download_rate=31.2;if(file_exists($local_file)&&is_file($local_file)){header(Cache-control:private);//发送headersheader(Content-Type:application/octet-stream);header(Content-Length:.filesize($local_file));header(Content-Disposition:filename=.$download_file);flush();//革新内容$file=fopen($local_file,"r");while(!feof($file)){printfread($file,round($download_rate*1024));//发送以后部分文件给扫瞄者flush();//flush内容输入到扫瞄器端sleep(1);//终端1秒后持续}fclose($file);//封闭文件流}else{die(Error:文件.$local_file.不存在!);}
复制代码
上面对以上代码做一些剖析:
上述实例把文件下载速率限定为31.2kb/s,即每秒仅向客户端发送20.5kb的文件流,直到发送完全个文件为止。假如没有该限定,那末文件将以流的情势一同发送到客户端,有几发送几,这会呈现甚么情形?假设文件巨细为2m,那末一会儿把2m的数据传播送已往,这将大概招致收集梗塞而中止剧本的实行,这类下载体例是不克不及在实践使用中接纳的。
手艺方面,起首增加头文件,声明Content-Type为application/octet-stream,暗示该哀求将以流的体例发送,而且声明Content-Length,即声了然文件流的巨细。在代码里利用了flush(),flush函数感化是革新php程序的缓冲,完成print静态输入。
注重以上反省文件是不是存在是经由过程file_exists这个函数的,但这个函数只能反省相对以后服务器网站目次内里的文件,假如是互联网上的远程文件,能够经由过程本站以下这篇文章:
php判别远程文件是不是存在的举措
来反省文件是不是存在。
别的提示一下的是:奇妙使用上述代码,还能够完成客户端显现文件下载进度条的功效,有乐趣的伴侣能够尝尝,这里就未几写了。
一些真正的强人总会搞出新玩意来丢给你,你不学就落后了,也印证了前人的经验,果然是学无止境啊!
小女巫 该用户已被删除
沙发
发表于 2015-1-19 05:16:28 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
若天明 该用户已被删除
板凳
发表于 2015-1-27 09:07:13 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
只想知道 该用户已被删除
地板
发表于 2015-2-5 07:02:20 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
莫相离 该用户已被删除
5#
发表于 2015-2-11 08:03:05 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
冷月葬花魂 该用户已被删除
6#
发表于 2015-3-11 01:44:26 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
乐观 该用户已被删除
7#
发表于 2015-3-17 18:23:10 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 10:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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