各位做运维和开发的童鞋,会经常遇到一个问题,那就是有人在办公室下载东西,网速自然而然地被拉下来了,影响大家上网、办公。同样的问题,要是出现在了服务器上面,估计会让老板发火,事情发展的会更糟……今天特此想大家推荐几行关于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!'); |
} |