寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、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用fsockopen()函数实现模拟提交表单。
php curl利用嘀咕、搜狐微博API发布微博
开个淘宝网店买充值卡
excel表格中页码从第n页开始
EMlog再次升级了
pdf、word、txt、excel等文档转flash(swf)软件—虚拟打印机FlashPaper
夏普sharp ar-2918 显示小人和小太阳灯一直亮清除方法
PHP 获取系统信息,PHP 获取服务器详细信息
windows xp win7双系统引导wubi安装ubuntu linux
摸死你个性签名集合
文章推荐
请不要奇怪,为什么最近博客的文章是几年前的内容
Win10更新后不显示文字
PHP实现远程下载,并显示实时下载进度
开篇第一章
随机推荐
删除MySQL数据库中二进制日志的3种方法
我今年二十七八岁
输入法设置的时候提示"检测到不兼容的键盘驱动程序,该对话框已被停用?" 解决方法
一个简单的php采集例子
更新一下友情链接插件
apache将其他域名(如带www的域名)转向不带www的域名
分享一个支持中文字符及英文字符混合的php字符串分割函数
腾讯云服务器快照恢复删除的数据
封装一个php发QQ微博的类。
网页编程之针对html源码的搜索引擎优化(SEO)建议
友情连接
春燕网络