最近在追剧《庆余年》,借用弹友的一句话,三元又三元,不仅要开通VIP,开通后还三元一集,感觉挻贵,偶然看到有网络资源可以下载,于是整了个PHP下片的代码。用PHP实现下载确实很简单,只是要想时实的显示下载进度,比较困难但感觉还是有些有趣,于是有了下面的代码。实现了PHP实现远程下载,并显示实时下载进度。废话就不多说,直接上代码。<?php
ignore_user_abort();
set_time_limit(0);
$url = isset($argv[1])?$argv[1]:false;
if(!$url){
echo 'Please input the file\'s URL.';
exit(0);
}
$header_array = get_headers($url, true);
$total = $header_array['Content-Length'];
$n = 0;
$extension = pathinfo( parse_url( $url, PHP_URL_PATH ), PATHINFO_EXTENSION );
$file = fopen($url, "rb");
$newf = fopen('filename.'.$extension, "wb");
while(! feof($file)) {
fwrite($newf, fread($file, 1024 * 8), 1024 * 8);
//进度显示
$n += 1024*8;
$progress =sprintf("%.2f", $n/$total);
if($progress>=1){
$progress = 1;
}
printf('filename.'.$extension ." progress: [%-50s] %d%% Done\r", str_repeat('#',$progress*50), $progress*100);
}
fclose($newf);
fclose($file);
将上述代码存为php文件,然后在cli模式下运行即可。上述代码只是实现了基本的下载功能,
最后想说,本程序不能用于下载《庆余年》哈,除非你有相关资源。当然,本人支持正版,请勿使用本代码做非法用途。