PHP用ZipArchive创建ZIP压缩包时,为了安全起见,需要增加解压缩密码。主要是两段代码,
$zip->setPassword('123456');
$zip->setEncryptionName('文件路径地址', ZipArchive::EM_AES_256)具体例子中的核心代码如下:
$zip = new ZipArchive();
if ($zip->open($path_name, ZipArchive::OVERWRITE) === true) {
if ($zip->setPassword('123456')){// 设置密码,但此处并不是核心
//dirname(__FILE__) 当前绝对路径
addFileToZip("./", $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
//$zip->addFile("home.php");//也可以不通过addFileToZip()函数,直接添加文件
//$zip->addFile("Android/index.php");
}
$zip->close(); //关闭处理的zip文件
echo "压缩包压缩成功";
}else{
echo "启动失败";
}
//以下为核心:
$zip->addFile($path . "/" . $filename);
if (!$zip->setEncryptionName($path . "/" . $filename, ZipArchive::EM_AES_256)) {//此处组合才是核心关键
echo "加密失败";
}