phpで複数のファイルをZIPに圧縮してダウンロードする方法

概要

PHPで複数のファイルをZIP圧縮して、ダウンロードする必要があったのでその際に参考に方法を紹介します

PHPのZIP拡張モジュールがインストールされているか確認する

PHP でZIP圧縮する場合は、Zip拡張モジュールが有効になっていないと駄目なので、phpinfo() 等で確認します

コマンドだと以下のうようにphp -mでモジュールリストにzipがあるか確認します

 

複数のファイルをZIP圧縮して、ダウンロードするサンプルコード

複数のファイルをZIP圧縮してダウンロードには、以下のようなコードになります。

$Zip_Files(test01.txt,test02.txt,test03.txt); で圧縮したいファイルとなります
$zipFileName = 'test.zip’; で圧縮したファイル名となります
$zipDir = dirname(__FILE__) . '/tmp/zip/’; で圧縮したファイルを保存するディレクトリとなります

 

圧縮するファイルを追加する時に、下記のようにファイルのパス・ファイル名としないと圧縮ファイルを解凍するとフルパスで解凍されます

$zip->addFile($filepath,$filename);

 

スポンサーリンク