note 106062 modified in class.ziparchive by danbrown

From: Date: Thu, 06 Oct 2011 20:36:26 +0000
Subject: note 106062 modified in class.ziparchive by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-183677@lists.php.net to get a copy of this message
Here is a simple function which zips folders with all sub folders or only a simple file... the $data var can be a string or an array... <?php public function un_zip($data,$arcpf,$mode='zip',$obj=''){ $absoluterpfad = 'YOUR_BASE_PATH'; $arcpf = $absoluterpfad.DS.$arcpf; if(is_object($obj)==false){ $archiv = new ZipArchive(); $archiv->open($arcpf,ZipArchive::CREATE); }else{$archiv =& $obj;} if($mode=='zip'){ if(is_array($data)==true){ foreach($data as $dtmp){ $archiv =& un_zip($dtmp,$arcpf,'zip',&$archiv); } }else{ if(is_dir($data)==true){ $archiv->addEmptyDir(str_replace($absoluterpfad.DS,'',$data)); $files = scandir($data); $bad = array('.','..'); $files = array_diff($files,$bad); foreach($files as $ftmp){ if(is_dir($data.DS.$ftmp)==true){ $archiv->addEmptyDir(str_replace($absoluterpfad.DS,'',$data.'/'.$ftmp)); $archiv =& un_zip($data.DS.$ftmp,$arcpf,'zip',&$archiv); }elseif(is_file($data.DS.$ftmp)==true){ $archiv->addFile($data.DS.$ftmp,str_replace($absoluterpfad.DS,'',$data.'/'.$ftmp)); } } }elseif(is_file($data)==true){$archiv->addFile($data,str_replace($absoluterpfad.DS,'',$data));} } } if(is_object($obj)==false){$archiv->close();} else{return $archiv;} if($mode=='unzip'){$archiv->extractTo($data);} } ?> --was-- Here is a simple function which zips folders with all sub folders or only a simple file... the $data var can be a string or an array... public function un_zip($data,$arcpf,$mode='zip',$obj=''){ $absoluterpfad = 'YOUR_BASE_PATH'; $arcpf = $absoluterpfad.DS.$arcpf; if(is_object($obj)==false){ $archiv = new ZipArchive(); $archiv->open($arcpf,ZipArchive::CREATE); }else{$archiv =& $obj;} if($mode=='zip'){ if(is_array($data)==true){ foreach($data as $dtmp){ $archiv =& un_zip($dtmp,$arcpf,'zip',&$archiv); } }else{ if(is_dir($data)==true){ $archiv->addEmptyDir(str_replace($absoluterpfad.DS,'',$data)); $files = scandir($data); $bad = array('.','..'); $files = array_diff($files,$bad); foreach($files as $ftmp){ if(is_dir($data.DS.$ftmp)==true){ $archiv->addEmptyDir(str_replace($absoluterpfad.DS,'',$data.'/'.$ftmp)); $archiv =& un_zip($data.DS.$ftmp,$arcpf,'zip',&$archiv); }elseif(is_file($data.DS.$ftmp)==true){ $archiv->addFile($data.DS.$ftmp,str_replace($absoluterpfad.DS,'',$data.'/'.$ftmp)); } } }elseif(is_file($data)==true){$archiv->addFile($data,str_replace($absoluterpfad.DS,'',$data));} } } if(is_object($obj)==false){$archiv->close();} else{return $archiv;} if($mode=='unzip'){$archiv->extractTo($data);} } http://php.net/manual/en/class.ziparchive.php

« previous php.notes (#183677) next »