寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、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
随笔
热门文章
请不要奇怪,为什么最近博客的文章是几年前的内容
ubuntu24.04无法安装向日葵,提示依赖libgconf-2-4怎么办?
ubuntu24.04安装网易云音乐
Ubuntu22.04中用thunar替换默认文件管理器,提示无法启动“TerminalEmulator“的首选应用程序
python读取旧的Excel文件的数据到新的Excel表中
nginx+php如何EventStream流式数据传输
python读取文件夹下图片并生成pdf文件
使用python把word转成pdf
VB.net开发的word转pdf的小工具
文章推荐
免责声明
关于博主
开篇第一章
随机推荐
excel无重复排序,如何提取排名前5的学生对应姓名
这只是广告
让ie自动后台运行
php实现多关键词sql数据库查询
调整PHP和MySQL的时区,实现同步显示中国时间
WAP写博客测试
记录一下这一伟大历史的开心时刻
本站有自己的域名了
鸟人
一不小心情人节了
友情连接
春燕网络
谢润的博客