PHP 解压带密码的压缩包(ZIP|7Z|RAR等)

因为平常经常要解压很多带密码的压缩包,索性想写个程序自动去密码本拿来解压

用了下go  结果go不支持解压带密码的

所以拿起老本行php来做,但原生拓展只有zip( ZipArchive)或者RAR没有7Z 非常不方便所以上gayhub找了个宝贝Archive7z

一个类就能支持这么多种格式  简直神器

环境要求,php>=7.3 并且需要安装 7-zip 自行点击链接下载即可

Windows: 7-zip >= 7.30 (7-Zip)

 Linux/MacOs: p7zip >= 9.38 (GitHub - jinfeihan57/p7zip: A new p7zip fork with additional codecs and improvements (forked from https://sourceforge.net/projects/p7zip/).). UPD: original 7-zip supports linux since 21.01 version

找个文件夹 composer下来  以下是目录结构

composer require gemorroj/archive7z 

demo代码

require ('vendor/autoload.php');
use Archive7z\Archive7z;


function test7Z($path,$dest_path,$password=''){
    $obj = new Archive7z($path);

    // 密码校验一定要放前面  因为调用isValid什么的会校验密码
    $obj->setPassword($password);

    if (!$obj->isValid()) {
        return false;
    }

    

    try {
        $obj->setOutputDirectory($dest_path)->extract();
    } catch (\Archive7z\Exception $e) {
        return false;
    }

    return true;
}


$path = 'C:\Users\zhengjb\Desktop\test\1\testrat.rar';
$dest_path = 'C:\Users\zhengjb\Desktop\test\1';
test7Z($path,$dest_path);

cli执行test.php 

解压成功

详细的逻辑就不给出来了!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值