PHPでZipArchiveクラスを使い、ファイルをZip圧縮して保存することができます。
PHP5.2.0以降ではデフォルトで使用可能となっているようですが、
明示的に使用するのであれば、コンパイル時に--enable-zip
を付加してください。
作成するZipファイル名を指定します。
$zip_file = 'file.zip';
ZipArchiveクラスのインスタンスを生成します。
$zip = new ZipArchive();
ファイルを新規作成、または存在すれば上書きで開きます。
$opened = $zip->open($zip_file, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);
ファイルを追加します。
$filename = "example.jpg";
$ret = $zip->addFile($filename);
追加が完了したらZipファイルを閉じます。
$ret = $zip->close();
例)Zip圧縮したファイルをダウンロードさせる
if($ret) {
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Length: '.filesize($zip_file));
readfile($zip_file);
}