php压缩文件

    xiaoxiao2021-04-17  45

    /* * 压缩 */ public function zip($dir,$filename,$missfile=array(),$addfromString=array()){ 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); if(file_exists($filename)){ //die('the zip file '.$filename.' has exists !'); } $files = array(); $this->getfiles($dir,$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 getfiles($dir,&$files=array()){ if(!file_exists($dir) || !is_dir($dir)){ return; } 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)){ getfiles($dir.'/'.$v,$files); } else { $files[] = $dir.'/'.$v; } } } return $files; }

    框架thinkphp3.2

    $wenjianjia = '01'; $wenjian_path='./stone/'.$wenjianjia; $zip = zip($wenjian_path,'./stone/'.$wenjianjia.'.zip');

    转载请注明原文地址: https://ju.6miu.com/read-673760.html

    最新回复(0)