해당 디렉토리를 통째로 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
); 
       } 
   } 
// end func 




 // 압축할 디렉토리 
 
$dir 'mail'


 
// 압축파일 이름 
 
$zipfile "zipfile.zip"


 
$zip = new ZipArchive

 
$res $zip->open($zipfileZipArchive::CREATE
); 
 if (
$res === TRUE
) {        
      
dirZip($zip,$dir
); 
      
$zip->close
(); 
 } else { 
      echo 
"에러 코드: ".$res

 } 
 
?>


블로그 이미지

하보니

하보니와 함께하는 phP 초보

Tag

댓글을 달아 주세요