Я использую XAMPP для 7.4.3-0 на Ma c ОС High Sierra 10.13.6:
- PHP Версия 7.4.3
- Zip версия 1.15.6
- Заголовки Libzip версии 1.5.1
- Библиотека Libzip версии 1.5.1
Следующий код создает файл с именем test.zip со всеми файлами из папки Важно , но не удается применить пароль secret к созданному файлу.
<?php
$zip = new ZipArchive;
$filename = "file.zip";
if ($zip->open($filename, ZipArchive::CREATE) === TRUE)
{
$zip->setPassword("secret");
if ($handle = opendir('Important/'))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile('Important/' . $entry);
$zip->setEncryptionName('Important/' . $entry, ZipArchive::EM_AES_256);
}
}
closedir($handle);
}
$zip->close();
}
?>
From php. net (ZipArchive :: setPassword) :
По состоянию на PHP 7.2.0 и libzip 1.2.0 пароль используется для распаковки архива, а также является паролем по умолчанию для ZipArchive :: setEncryptionName () и ZipArchive :: setEncryptionIndex (). Ранее эта функция только устанавливала пароль, который будет использоваться для распаковки архива; он не превратил незащищенный паролем ZipArchive в защищенный паролем ZipArchive.
Поскольку я использую более поздние версии PHP и libzip, а код не выдает никаких ошибок, я буду Спасибо за любые советы о том, как создать zip-файл, защищенный паролем.