使用 PHP 限制下载速度

[来源] 达内    [编辑] 达内   [时间]2012-12-12

经常遇到一个问题,那就是有人再办公室下载东西,影响大家上网、办公。同样的问题,要是出现在了服务器上面,估计会让老板发火,事情发展的会更糟……今天特此想大家推荐几行关于PHP限制网速的代码,希望给大家一些帮助。

各位做运维的童鞋,会经常遇到一个问题,那就是有人再办公室下载东西,影响大家上网、办公。同样的问题,要是出现在了服务器上面,估计会让老板发火,事情发展的会更糟……今天特此想大家推荐几行关于PHP限制网速的代码,希望给大家一些帮助。

[代码] [PHP]代码

// local file that should be send to the client

$local_file = 'test-file.zip';

// filename that the user gets as default

$download_file = 'your-download-name.zip';

// set the download rate limit (=> 20,5 kb/s)

$download_rate = 20.5;

if(file_exists($local_file) && is_file($local_file)) {

// send headers

header('Cache-control: private');

header('Content-Type: application/octet-stream');

header('Content-Length: '.filesize($local_file));

header('Content-Disposition: filename='.$download_file);

// flush content

flush();

// open file stream

$file = fopen($local_file, "r");

while (!feof($file)) {

// send the current file part to the browser

print fread($file, round($download_rate * 1024));

// flush the content to the browser

flush();

// sleep one second

sleep(1);

}

// close file stream

fclose($file);

}

else {

die('Error: The file '.$local_file.' does not exist!');

}

使用 PHP 限制下载速度的更多相关文章

  1. Genymotion 解决虚拟镜像下载速度特别慢的问题

    Genymotion号称Android模拟器中运行最快的,但是服务器在国外,Android镜像下载起来那个速度就不想说了. Add new device后下载速度太慢了,容易失败   解决方法如下: ...

  2. maven下载速度慢的解决方法(转)

    原文链接:http://blog.csdn.net/u013009618/article/details/53980983 maven是支持镜像的,我们可以在maven的conf文件加下的settin ...

  3. 使用curl命令获取文件下载速度

    使用curl可以下载网络内容,那如何获取curl下载时的下载速度呢,使用下面的命令即可: # curl -Lo /dev/null -skw "%{speed_download}\n&quo ...

  4. npm下载速度太慢

    因为墙的原因导致下载速度过慢,解决方式就是使用国内镜像 使用淘宝的镜像 npm config set registry="http://registry.npm.taobao.org/&qu ...

  5. 解决Android SDK Manager更新、下载速度慢

    hosts文件里面原来的内容不做修改,只是添加内容 方法/步骤 先看看如何加快更新速度,再说如何更新. 首先更新host文件,如图,打开目录 C:\Windows\System32\drivers\e ...

  6. 转:苹果应用商店DNS修改加快下载速度

    苹果应用商店DNS修改加快下载速度 具体方法:依次点击进入[设置]→[无线局域网]→[WiFi网络右侧小i图标]→更改DNS地址,可以按照自身需求选择以下某个DNS进行更换. OpenDNS:208. ...

  7. [转载] Genymotion 解决虚拟镜像下载速度特别慢的问题

    本文转载自: http://blog.csdn.net/qing666888/article/details/51622762 Genymotion号称Android模拟器中运行最快的,但是服务器在国 ...

  8. 4M宽带一般最大的下载速度是多少?

    4M宽带理论速度=4Mbit/s=4096 Kbit/s=512 KByte/s宽带速度其实是有两个参数的:上行(上传速度).下行(下载速度),一般宽带标为4M其实是说下载速度是4M(即512KB/每 ...

  9. 苹果应用商店DNS修改加快下载速度

    具体方法:依次点击进入[设置]→[无线局域网]→[WiFi网络右侧小i图标]→更改DNS地址,可以按照自身需求选择以下某个DNS进行更换. OpenDNS:208.67.222.222和208.67. ...

随机推荐

  1. tty相关内容

    参考文章: http://blog.csdn.net/goodluckwhh/article/details/13368279

  2. PHP常用类型判断函数

    1.gettype():获取变量类型 2.is_array():判断变量类型是否为数组类型 3.is_double():判断变量类型是否为倍浮点类型 4.is_float():判断变量类型是否为浮点类 ...

  3. oracle DBA坚持写博客的7大理由

    对于Oracle DBA来说,甚至IT技术人员来说.坚持写博客是个好习惯.以下是我建议大家写博客的七个理由. 帮助整理思路 最近我做出了一个决定,那就是: 我要坚持天天写博客,记录每天所学的重要东西. ...

  4. Android开发之日历控件实现

    Android开发之日历控件实现:以下都是转载的. 日历控件 日历控件 日历控件 日历控件

  5. Effective C++ 学习笔记[2]

    2. 第一节 习惯C++ 2.1 C++是一个语言联邦,包括以下四个部分: C:包括区块.语句.预处理器.内置数据类型.数组.指针等,但是C语言本身存在局限:没有模板template.没有异常exce ...

  6. c# 数据绑定之 DataFormatString 格式

    数据绑定之DataFormatString 设定BoundField的DataFormatString,通常有以下几种 DataFormatString= "{0:C}" 货币,货 ...

  7. 逆序数2 HDOJ 1394 Minimum Inversion Number

    题目传送门 /* 求逆序数的四种方法 */ /* 1. O(n^2) 暴力+递推 法:如果求出第一种情况的逆序列,其他的可以通过递推来搞出来,一开始是t[1],t[2],t[3]....t[N] 它的 ...

  8. Revit二次开发示例:HelloRevit

    本示例实现Revit和Revit打开的文件的相关信息. #region Namespaces using System; using System.Collections.Generic; using ...

  9. 【Linux下进程机制】从一道面试题谈linux下fork的运行机制

    今天一位朋友去一个不错的外企面试linux开发职位,面试官出了一个如下的题目: 给出如下C程序,在linux下使用gcc编译: #include "stdio.h" #includ ...

  10. codevs 1507酒厂选址

    #include<cstdio> #include<cstdlib> using namespace std; int n; int dis[10010],a[10010],x ...