因为平常经常要解压很多带密码的压缩包,索性想写个程序自动去密码本拿来解压
用了下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?
解压成功
详细的逻辑就不给出来了!!!
|