失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php 文件夹打包zip压缩包

php 文件夹打包zip压缩包

时间:2018-08-15 08:56:05

相关推荐

php 文件夹打包zip压缩包

/***@desc 生成zip压缩文件的函数**@param $dir string 需要压缩的文件夹名*@param $filenamestring 压缩后的zip文件名 包括zip后缀*@param $missfilearray 不需要的文件*@param $fromString array 自定义压缩文件*/public function zip($dir,$filename,$missfile=array(),$addfromString=array()){$profixPath = substr($filename,0,5);if(!file_exists($dir) || !is_dir($dir)){die(' can not exists dir '.$dir);}if(strtolower(end(explode('.',$filename))) != 'zip'){die('only Support zip files');}$dir = str_replace('\\','/',$dir);$filename = str_replace('\\','/',$filename);$filename = iconv('utf-8','gb2312',$filename);if(file_exists($filename)){die('the zip file '.$filename.' has exists !');}if (!is_dir($profixPath)){mkdir($profixPath);}$files = array();$this->getfiles($dir,$files);$files = $this->array_iconv($files);if(empty($files)){die(' the dir is empty');}$zip = new \ZipArchive();$res = $zip->open($filename, \ZipArchive::CREATE);if ($res === TRUE) {foreach($files as $v){if(!in_array(str_replace($dir.'/','',$v),$missfile)){$zip->addFile($v,str_replace($dir.'/','./',$v));}}if(!empty($addfromString)){foreach($addfromString as $v){$zip->addFromString($v[0],$v[1]);}}$zip->close();echo 'ok';} else {echo 'failed';}}//定义图片字符集public function array_iconv($data, $in_charset='GBK', $out_charset='UTF-8'){if (!is_array($data)) {$output = iconv($in_charset, $out_charset, $data);} elseif (count($data) === count($data, 1)) {//判断是否是二维数组foreach ($data as $key => $value) {$output[$key] = iconv($in_charset, $out_charset, $value);}} else {eval_r('$output = ' . iconv($in_charset, $out_charset, var_export($data, TRUE)) . ';');}return $output;}public function getfiles($dir,&$files=array()){if(!file_exists($dir) || !is_dir($dir)){return mkdir($dir);}if(substr($dir,-1)=='/'){$dir = substr($dir,0,strlen($dir)-1);}$_files = scandir($dir);foreach($_files as $v){if($v != '.' && $v!='..'){if(is_dir($dir.'/'.$v)){$this->getfiles($dir.'/'.$v,$files);} else {$files[] = $dir.'/'.$v;}}}return $files;}

如果觉得《php 文件夹打包zip压缩包》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。