function http_request($URI)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URI);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//速度控制
$speed = 100000;
curl_setopt($ch, CURLOPT_MAX_RECV_SPEED_LARGE, 100000);
$result = curl_exec($ch);
if (!$result){
echo curl_error($ch);
return false;
}
curl_close($ch);
return $result;
}
$url = "http://toutiao.sogoucdn.com/ykvideo/20181130/0575139af28f38c336912739acf33a88.mp4";
$res = http_request($url);
file_put_contents("./video", $res);
说明:
curl "http://toutiao.sogoucdn.com/ykvideo/20181130/0575139af28f38c336912739acf33a88.mp4" -o video --limit-rate 100k
说明:
我们使用iftop对网卡的下载速度进行测定,以观测控速是否起到了应有的效果。不了解iftop的同学,可以点击这里。
运行1.1中的代码,我们在iftop中看到如下记录:
10.144.73.171 => 111.202.99.142 6.56Kb 6.78Kb 6.76Kb
<= 1.02Mb 1.00Mb 0.99Mb
平均下载速度在900kb~1.1M(bit)之间波动。
iftop中看到记录如下:
10.144.73.171 => 111.202.99.191 6.72Kb 6.59Kb 6.81Kb
<= 1.04Mb 1.04Mb 1.04Mb
平均下载速度在850kb~1.1M(bits)之间波动。与代码方式基本一致。