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