寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、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
随笔
热门文章
PHP实现远程下载,并显示实时下载进度
CentOS无法删除文件怎么办
Excel如何批量替换字符串?讲解Excel的字符替换函数SUBSTITUTE
本博客系统开启评论IP黑名单、关键词黑名单功能
2020开局不顺
开篇第一章
Excel文件内容很少,但文件很大,打开很慢、很卡怎么办?
文章推荐
PHP实现远程下载,并显示实时下载进度
开篇第一章
随机推荐
PHP实现远程下载,并显示实时下载进度
CentOS无法删除文件怎么办
Excel如何批量替换字符串?讲解Excel的字符替换函数SUBSTITUTE
开篇第一章
本博客系统开启评论IP黑名单、关键词黑名单功能
Excel文件内容很少,但文件很大,打开很慢、很卡怎么办?
2020开局不顺
友情连接
春燕网络