各位做運維的童鞋,會經常遇到一個問題,那就是有人再辦公室下載東西,影響大家上網、辦公。同樣的問題,要是出現在了服務器上面,估計會讓老板發火,事情發展的會更糟……今天特此想大家推薦幾行關於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
}