skezip_recurse_zip($src . '/' . $file,$zip,$path); } else { $zip->addFile($src . '/' . $file,substr($src . '/' . $file,$path)); } } } closedir($dir); } public function skezip_compress($src,$dst=''){ if(substr($src,-1)==='/'){$src=substr($src,0,-1);} if(substr($dst,-1)==='/'){$dst=substr($dst,0,-1);} $path=strlen(dirname($src).'/'); $filename = get_template().date("_m.d.y").'_'.time().'.zip'; $dst=empty($dst)? $filename : $dst.'/'.$filename; $zip = new ZipArchive; $res = $zip->open($dst, ZipArchive::CREATE); if($res !== TRUE){ echo 'Error: Unable to create zip file'; exit;} if(is_file($src)){$zip->addFile(substr($src,$path));} else{ if(!is_dir($src)){ $zip->close(); @unlink($dst); echo 'Error: File not found'; exit;} $this->skezip_recurse_zip($src,$zip,$path);} $zip->close(); return $dst; } } ?>