php 下载文件 进度条显示,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模式下运行即可。上述代码只是实现了基本的下载功能,

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值