如何用php设置zip存档中的密码

时间:2017-10-30 07:35:53

标签: php

我只想在现有的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 .")");
    }
?>

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

http://php.net/manual/en/ziparchive.setpassword.php

  

此功能仅设置用于解压缩存档的密码;它不会将非密码保护的ZipArchive变成受密码保护的ZipArchive。

最高评论也说

  

将此方法命名为ZipArchive :: usePassword是不是有意义呢?似乎有很多人认为它的名称(ZipArchive :: setPassword)用于应用密码。我认为这种方法的讨论当然应该讨论。

这表明此功能仅用于在使用ZipArchive类执行提取时设置密码。