通常PHPでzipファイルを作成するときには以下のようにしてZipArchiveクラスを使用して作成すると思います。
$zip = new ZipArchive(); $res = $zip->open('./zip/hoge.zip', ZipArchive::CREATE); if ($res === true) { $zip->addFile('hoge.png'); $zip->addFile('hoge.jpg'); $zip->close(); }
このZipArchiveクラスを用いてパスワード付きのzipファイルを生成しようと思い、setPassword()関数が存在するのでそれを使用しようとしたのですが、できませんでした。
http://php.net/manual/ja/ziparchive.setpassword.php
このsetPassword()関数は解凍専用で、圧縮時には使えないそうです。
現状、PHPでパスワード付きのzipファイルを生成するには以下のようにexec()関数を用いてzipコマンドを呼び出す方法しかなさそうです。
exec("zip -jP $password $file1 $file2");