各位做運維的童鞋,會經常遇到一個問題,那就是有人再辦公室下載東西,影響大家上網、辦公。同樣的問題,要是出現在了服務器上面,估計會讓老板發火,事情發展的會更糟……今天特此想大家推薦幾行關於PHP限制網速的代碼,希望給大家一些幫助。
01
// local file that should be send to the client
02
$local_file = 'test-file.zip';
03
04
// filename that the user gets as default
05
$download_file = 'your-download-name.zip';
06
07
// set the download rate limit (=> 20,5 kb/s)
08
$download_rate = 20.5;
09
10
if(file_exists($local_file) && is_file($local_file)) {
11
12
// send headers
13
header('Cache-control: private');
14
header('Content-Type: application/octet-stream');
15
header('Content-Length: '.filesize($local_file));
16
header('Content-Disposition: filename='.$download_file);
17
18
// flush content
19
flush();
20
21
// open file stream
22
$file = fopen($local_file, "r");
23
24
while (!feof($file)) {
25
26
// send the current file part to the browser
27
print fread($file, round($download_rate * 1024));
28
29
// flush the content to the browser
30
flush();
31
32
// sleep one second
33
sleep(1);
34
}
35
36
// close file stream
37
fclose($file);
38
39
}
40
41
else {
42
die('Error: The file '.$local_file.' does not exist!');
43
}