php压缩文件

/*
	 * 压缩
	 */
	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');




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值