php解压缩类并带实例[linux window平台皆通过

22 篇文章 0 订阅

php解压缩类并带实例[linux window平台皆通过]

<?php
class zipclass{
private $path;
private $filename;
public $type=true;
//构造函数
public function __construct(){}
//设置压缩或解压目录
public function set_path($path){
if(!file_exists($path) || !is_dir($path)){die("指定的目录[$path]不存在");}
else{$this->path=$path;}
}
//设置压缩文件名或解压文件名
public function set_filename($filename){
if(strtolower(end(explode(".",$filename)))!="zip"){die("文件必须是.zip格式");}
else{$this->filename=$filename;}
}
//获取文件
private function get_files($dir,&$files=array()){
$temp=scandir($dir);
foreach($temp as $value){
if($value !="." && $value!=".."){
$make_path=$dir."/".$value;
if(is_dir($make_path)){$this->get_files($make_path,$files);}
$files[]=$make_path;
}
}
}
//压缩
public function zip(){
if(file_exists($this->filename)){
if($this->type){@unlink($this->filename);}
else{die("文件[{$this->filename}]已经存在了");}
}
$files=array();
$this->get_files($this->path,$files);
$zip=new ziparchive();
$res=$zip->open($this->filename,ziparchive::CREATE);
if($res===true){
if(empty($files)){$zip->addemptydir($this->path);}
else{
foreach($files as $value){
if(is_dir($value)){$zip->addemptydir($value);}
else{$zip->addfile($value,$value);}
}
}
$zip->close();
}
}
//解压
function unzip(){
$zip=new ziparchive();
if($zip->open($this->filename)===true){
$zip->extractto($this->path);
$zip->close();
}
}
}
?>
<?php

1.实例化类
$zip=new zipclass();//需要把类导入到当前环境
2.设置压缩或解压的目录
$zip->set_path(".");//压缩当前目录或解压到当前目录路径设置为"."
3.设置压缩文件名或解压文件名
$zip->set_filename("zip.zip");//文件必须是.zip格式
4.压缩或解压
//$zip->zip();//压缩
//$zip->unzip();//解压
5.其他
压缩时如果文件已经存在会自动删除后再生成压缩包
$zip->type=false;//此设置在压缩时如果文件已经存在则不会重新生成压缩包

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值