寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、Office办公、随笔等内容。

PHP实现远程下载,并显示实时下载进度

最近在追剧《庆余年》,借用弹友的一句话,三元又三元,不仅要开通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模式下运行即可。上述代码只是实现了基本的下载功能,

最后想说,本程序不能用于下载《庆余年》哈,除非你有相关资源。当然,本人支持正版,请勿使用本代码做非法用途。

文章写得不错?我是土豪我要在线打赏!
在线打赏

昵称:

验证码:验证码

评论:

文章分类
系统
程序
数据
Office
随笔
热门文章
python读取文件夹下图片并生成pdf文件
VB.net开发的word转pdf的小工具
使用python把word转成pdf
文章推荐
免责声明
关于博主
开篇第一章
随机推荐
Yahoo电邮纯为鸡肋
discuz分区伪静态
开个淘宝网店买充值卡
杭州惊现“一分男”,银行反复存取1分钱(转)
伤心的虚拟主机
Google Font API打造美轮美奂的网页字体
记录一下这一伟大历史的开心时刻
pidgin飞信证书错误处理办法
Excel动态引用各表格指定单元格数据
是该找点事情做了
友情连接
春燕网络
谢润的博客
企安文档