寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、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
随笔
热门文章
Excel文件内容很少,但文件很大,打开很慢、很卡怎么办?
PHP实现远程下载,并显示实时下载进度
2020开局不顺
Excel如何批量替换字符串?讲解Excel的字符替换函数SUBSTITUTE
CentOS无法删除文件怎么办
本博客系统开启评论IP黑名单、关键词黑名单功能
超酷绚的Excel点选变色,自动求合功能
开篇第一章
饥饿站台观后感
Win10更新后不显示文字
文章推荐
Win10更新后不显示文字
PHP实现远程下载,并显示实时下载进度
开篇第一章
随机推荐
写在母亲忌日
Win10更新后不显示文字
开篇第一章
PHP实现远程下载,并显示实时下载进度
CentOS无法删除文件怎么办
饥饿站台观后感
2020开局不顺
本博客系统开启评论IP黑名单、关键词黑名单功能
PHP7报错:Call to undefined function mysql_connect(),如何兼容mysql_connect函数
MySQL数据库的concat()函数为什么返回空
友情连接
春燕网络