Создание защищенного паролем Zip-файла с использованием PHP в Windows

Я создаю zip-файл данного файла в PHP. Ниже приведена функция

function create_zip($file, $file_name) { $zip = new ZipArchive(); $zip_name = $file_name. ".zip"; // Zip name $zip->open($zip_name, ZipArchive::CREATE); if (file_exists($file)) { $zip->addFromString(basename($file), file_get_contents($file)); } else { return "file does not exist"; } $zip->close(); return $zip_name; } 

Я хочу добавить защиту паролем для файлов Zip. Я нашел следующий код для создания защищенного паролем zip-файла

 system('zip -P password file.zip file.txt'); 

Но он работает неправильно. Можете ли вы, пожалуйста, назовите меня. Как добавить защиту паролем в Zip-файл?

PHP Zip – http://php.net/manual/en/book.zip.php – не поддерживает защищенные паролем ZIP-файлы, вам нужно будет сделать это через командную строку.

Чтобы защитить паролем файл, вам необходимо использовать zip командную строку, убедитесь, что программа командной строки zip присутствует, она не установлена ​​по умолчанию во многих системах.

В новом PHP 5.6 (в настоящее время в бета-версии ) вы можете использовать ZipArchive для создания защищенных паролем архивов. Все, что вам нужно, это добавить этот код ZipArchive::setPassword($password)

Edit: По-видимому, он поддерживает дешифрование , а не шифрование.

Я понимаю, что это старый поток, но кто-то пытается добавить пароль в архив в среде Windows, я решил это с помощью командной строки winrar и exec на PHP.

Загрузите winrar с http://www.rarlab.com/ и включите WinRAR.exe в свой каталог скриптов PHP или вызовите его из нужного каталога в команде exec .

exec("winrar a -p[password] [archive name] [file or folders to include]");

winrar в приведенном выше примере относится к winrar.exe в том же каталоге, что и ваш скрипт. Если winrar.exe НЕ находится в том же каталоге, что и ваш скрипт, вы можете просто указать путь:

exec("C:\Program Files\Winrar...

Так, например: exec("winrar a -ppassword archive.zip file.txt");

В результате создается архив с именем «archive.zip», созданный с «file.txt» внутри, и пароль «password».

Для получения дополнительной информации о командной строке winrar: http://acritum.com/software/manuals/winrar/