我只想在现有的zip存档中设置密码,
我使用方法$zip->setPassword("MySecretPassword")
,
该函数返回true,但密码不存在。
代码运行后,我可以在不输入密码的情况下提取文件。
这是我的代码:
<?php
$zip = new ZipArchive();
$zip_status = $zip->open("test.zip");
if ($zip_status === true)
{
if ($zip->setPassword("MySecretPassword"))
{
if (!$zip->extractTo(__DIR__))
echo "Extraction failed (wrong password?)";
}
$zip->close();
}
else
{
die("Failed opening archive: ". @$zip->getStatusString() . " (code: ". $zip_status .")");
}
?>
任何人都可以帮助我。
答案 0 :(得分:1)
http://php.net/manual/en/ziparchive.setpassword.php
此功能仅设置用于解压缩存档的密码;它不会将非密码保护的ZipArchive变成受密码保护的ZipArchive。
最高评论也说
将此方法命名为ZipArchive :: usePassword是不是有意义呢?似乎有很多人认为它的名称(ZipArchive :: setPassword)用于应用密码。我认为这种方法的讨论当然应该讨论。
这表明此功能仅用于在使用ZipArchive类执行提取时设置密码。