phpMyAdmin のライブラリを使用して、複数ファイルを圧縮できるようにします。
「zip.lib.php」を使用します。
<?php
header( "Content-Type: application/octet-stream" );
header( "Content-disposition: attachment; filename=comp.zip" );
require_once('zip.lib.php');
// クラス作成
$zipfile = new zipfile();
// ファイルリストを読み込む
$line = file('tmp/lists.data');
$file_name = explode(',', $line[0]);
$i = 0;
while($file_name[$i] != ""){
// ダウンロード元ファイルのPath
$filename = $file_name[$i];
// 保存時のファイル名
${'fName'.$i} = $filename;
// ファイルをバイナリで読んで、変数にセット
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
// 追加
$zipfile->addFile($contents, ${'fName'.$i});
$i ++;
}
// zip をバイナリで変数にセット
$zip_buffer = $zipfile->file();
print $zip_buffer;
?>