first commit
This commit is contained in:
97
wp-content/plugins/revslider/inc_php/framework/zip.class.php
Normal file
97
wp-content/plugins/revslider/inc_php/framework/zip.class.php
Normal file
@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
class UniteZipRev{
|
||||
|
||||
private $zip;
|
||||
|
||||
/**
|
||||
*
|
||||
* get true / false if the zip archive exists.
|
||||
*/
|
||||
public static function isZipExists(){
|
||||
$exists = class_exists("ZipArchive");
|
||||
return $exists;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* add zip file
|
||||
*/
|
||||
private function addItem($basePath,$path){
|
||||
|
||||
$rel_path = str_replace($basePath."/", "", $path);
|
||||
|
||||
if(is_dir($path)){ //directory
|
||||
|
||||
//add dir to zip
|
||||
if($basePath != $path)
|
||||
$this->zip->addEmptyDir($rel_path);
|
||||
|
||||
$files = scandir($path);
|
||||
foreach($files as $file){
|
||||
if($file == "." || $file == ".." || $file == ".svn")
|
||||
continue;
|
||||
$filepath = $path."/".$file;
|
||||
$this->addItem($basePath, $filepath);
|
||||
}
|
||||
}
|
||||
else{ //file
|
||||
if(!file_exists($path))
|
||||
throwError("filepath: '$path' don't exists, can't zip");
|
||||
|
||||
$this->zip->addFile($path,$rel_path);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* make zip archive
|
||||
* if exists additional paths, add additional items to the zip
|
||||
*/
|
||||
public function makeZip($srcPath, $zipFilepath,$additionPaths = array()){
|
||||
|
||||
if(!is_dir($srcPath))
|
||||
throwError("The path: '$srcPath' don't exists, can't zip");
|
||||
|
||||
$this->zip = new ZipArchive;
|
||||
$success = $this->zip->open($zipFilepath, ZipArchive::CREATE);
|
||||
|
||||
if($success == false)
|
||||
throwError("Can't create zip file: $zipFilepath");
|
||||
|
||||
$this->addItem($srcPath,$srcPath);
|
||||
|
||||
if(gettype($additionPaths) != "array")
|
||||
throwError("Wrong additional paths variable.");
|
||||
|
||||
|
||||
//add additional paths
|
||||
if(!empty($additionPaths))
|
||||
foreach($additionPaths as $path){
|
||||
if(!is_dir($path))
|
||||
throwError("Path: $path not found, can't zip");
|
||||
$this->addItem($path, $path);
|
||||
}
|
||||
|
||||
$this->zip->close();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Extract zip archive
|
||||
*/
|
||||
public function extract($src, $dest){
|
||||
$zip = new ZipArchive;
|
||||
if ($zip->open($src)===true){
|
||||
$zip->extractTo($dest);
|
||||
$zip->close();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
Reference in New Issue
Block a user