ディレクトリのファイルをzipで圧縮したい
phpでファイル圧縮をする場合はZipArchiveを使う場合があるのだが、ディレクトリ指定ができないので、ディレクトリ指定したい場合のやり方を書いておく
<?php
$zip_file_name = "example.zip";
$zip = new ZipArchive();
$res = $zip->open('/path/to/put/zip/file/example.zip', ZipArchive::CREATE);
$files = glob("/path/to/files/*");
foreach ($files as $file) {
$zip->addFile($file); // ファイル名を帰る場合は第2引数で指定可能
}
$zip->close();
難しくないコードです。
glob関数でファイル一覧を持ってきて圧縮しているだけです。ディレクトリ指定そのままできると便利と思ったのですが、できないみたいなのでメモ程度に残しておきます。