めも。
// zipクラスのインスタンスを生成 $zip = new ZipArchive(); // 出力時のファイル名 $outFileName = 'hoge.zip'; // 作業ファイルパスを生成 $tmpFilePath = tempnam(sys_get_temp_dir(), 'tmp'); // 作業ファイルをオープン $result = $zip->open($tmpFilePath, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE); if($result !== true) { return false; } // 圧縮するファイルを定義 $addFilePath = file_get_contents('/path/to/file.ext'); $addFileName = 'file.ext'; // zipファイルに追加(繰り返せば複数ファイル追加可能) $zip->addFromString($addFileName , $addFilePath); // ストリームを閉じる $zip->close(); // ブラウザに出力 header('Content-Type: application/octet-stream; name="'.$outFileName.'"'); header('Content-Disposition: attachment; filename="'.$outFileName.'"'); header('Content-Length: '.filesize($tmpFilePath)); echo readfile($tmpFilePath); // 一時ファイルを削除 unlink($tmpFilePath); die();