ラボ > PHP:ファイル関連

php パスワード付きのZIPファイルにしたい

作成日:2020-11-16, 更新日:2020-11-16

PHP7.2以上

▼サンプル

$pwd = 〇〇〇;
$zip_name = '〇〇〇.zip';
$file_name = '〇〇〇.txt';

$objZip = new ZipArchive();
if ( !$objZip->open($zip_name, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE) ) {
  ~失敗~
}

$objZip->addFile($file_name, $file_name);
$objZip->setEncryptionName($filename, ZipArchive::EM_AES_256, $pwd);

$objZip->close();

※7zipなどのアプリで展開するなら問題ないけど、Winでディレクトリを開いてデスクトップとかに中のファイルを移動させようとすると・・・エラーになる・・・以降は、未調査

PHP7.2未満

$pwd = 〇〇〇;
$zip_name = '〇〇〇.zip';
$file_name = '〇〇〇.txt';

exec('zip -e  --password='.$pwd.' '.$zip_name.' '.$file_name, $result);
var_export($result);

めも

・「setPassword()」(php5.6以上)ってヤツがあるけど、これは解凍したいときに使うらしく圧縮では使えないらしい