【发布时间】:2014-06-12 17:30:28
【问题描述】:
新的“setPassword”方法不生效(除非我理解错了)。
这是我的示例代码:
<?php
$zipFilePath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'filename.zip';
$password = 'P455W0RD';
if (file_exists($zipFilePath)) {
unlink($zipFilePath);
}
$zipArchive = new ZipArchive();
$zipArchive->open($zipFilePath, ZipArchive::CREATE);
if ($zipArchive->setPassword($password)) {
echo 'OK' . PHP_EOL;
}
foreach (range(1, 10) as $fileNumber) {
$zipArchive->addFromString('file' . $fileNumber . '.txt', rand());
}
$zipArchive->close();
它在 PHP 5.6.0beta3 (Debian 测试) 中打印“OK”,但没有密码 在 zip 文件中。
我错过了什么?
【问题讨论】:
-
您是否已将此反馈给 PHP 核心开发人员?好几个星期以来,他们一直在征求对 PHP56 新特性的测试反馈
-
其实没有。我一直在考虑。我不确定我的代码是愚蠢的还是真正的错误......
-
也许值得修改您的代码以测试 setPassword() 是否在 添加文件之后工作......但它肯定有可能是一个错误:这是一个新功能之后全部,我没有看到任何用于测试 setPassword 的 phpt 文件
-
不,添加文件后不起作用。我会向他们报告的。谢谢!
-
即使您正在做的只是一些愚蠢的事情,记录问题也应该提醒团队在 php 文档中解释如何正确使用它
标签: php passwords zip ziparchive