해당 디렉토리를 통째로 zip 파일로 압축하는 소스입니다.
<?php
function dirZip($resource,$dir) {
if(filetype($dir) === 'dir') {
clearstatcache();
if($fp = @opendir($dir)) {
while(false !== ($ftmp = readdir($fp))){
if(($ftmp !== ".") && ($ftmp !== "..") && ($ftmp !== ""))
{
if(filetype($dir.'/'.$ftmp) === 'dir') {
clearstatcache();
$resource->addEmptyDir($dir.'/'.$ftmp);
set_time_limit(0);
dirZip($resource,$dir.'/'.$ftmp);
} else {
$resource->addFile($dir.'/'.$ftmp);
}
}
}
}
if(is_resource($fp)){
closedir($fp);
}
} else {
$resource->addFile($dir);
}
}
$dir = 'mail';
$zipfile = "zipfile.zip";
$zip = new ZipArchive;
$res = $zip->open($zipfile, ZipArchive::CREATE);
if ($res === TRUE) {
dirZip($zip,$dir);
$zip->close();
} else {
echo "에러 코드: ".$res;
}
?>