php压缩解压zip,php压缩解压Zip文件

http://%77%77%77%2E%66%6F%72%61%73%70%2E%63%6E

PHP创建ZIP压缩文件,php解压ZIP,php操作ZIP类,php操作zip类,通过不同的方法来实现,压缩(文件和文件夹),解压,删除以及重命名压缩文件内容本站原创,转载请注明<?php

class zip_forasp{

public $zipobj;#zip对象

public $err;#设置错误信息

public $temp_array;#假如有文件夹添加,则进行临时数组放置

function __construct(){

if(class_exists(ZipArchive)){

$this->zipobj = new ZipArchive();

}else{

$this->err_message("不能创建zip对象,请确定php.ini配置是否正确:将;extension=php_zip.dll(最后一个)前面的;去掉,类".__CLASS__.__LINE__."行");

}

}

public function create_zip($file){#创建压缩文件,file是生成的zip文件名

if(!$this->zipobj->open($file.".zip",ZipArchive::CREATE))$this->err_message("未知错误,类".__CLASS__.__LINE__."行");

}

public function add_file($filepath){#向压缩文件添加内容,可以是文件,也可以是文件夹

if(is_dir($filepath)){#如果是文件夹则去获取里面的便利内容

$this->get_dir_file($filepath);//FORASP.CN

$file = $this->temp_array;//将遍历回来的文件路径数组给filepath

}else{

if($this->check_file($filepath))return false;

$file[] = $filepath;

}

for($i=0;$i

if(!$this->zipobj->addFile($file[$i])){

$this->err_message("未知错误,类".__CLASS__.__LINE__."行");

break;

}

}

return true;

}

public function change_name($zipname,$oldname,$newname){

$this->open_zip($zipname);

if($this->zipobj->renameName($oldname,$newname))$this->err_message("打开压缩文件出错,类".__CLASS__.__LINE__."行");

}

public function del_file($zipname,$filename){#删除压缩文件内容,可以是文件,也可以是文件夹,zip是要删除的压缩文件的名称,后面的是要删除的压缩内容名称

$this->open_zip($zipname);

if($this->zipobj->deleteName($filename))$this->err_message("打开压缩文件出错,类".__CLASS__.__LINE__."行");

}

public function un_zip($file,$path="./"){#file要解压文件,$path要解压到的路径,默认为当前路径

$temp = $this->open_zip($file);

$this->zipobj->extractTo($path);

return $temp;

}

private function open_zip($zipname){//

if($this->check_file($zipname))return false;

if(!$this->zipobj->open($zipname))$this->err_message("打开压缩文件出错,类".__CLASS__.__LINE__."行");#

}

private function get_dir_file($temppath){

$dir = dir($temppath);

while($tempfile = $dir->read()){

if($tempfile!="."&&$tempfile!=".."){

if(is_file($temppath."/".$tempfile))$this->temp_array[]=$temppath.$tempfile;

if(is_dir($temppath."/".$tempfile))$this->get_dir_file($temppath."/".$tempfile);

}

}

return;

}

private function check_file($file){

if(!file_exists($file))$this->err_message("文件".$file."不存在");//

}

public function zip_close(){

$this->zipobj->close();

}

private function err_message($str){

echo $str;

die();

}

}#类结束

/*

本站原创:http://www.forasp.cn/

QQ419018470

需要说明一点的是:需要配置php.ini文件,将最后的;extension=php_zip.dll(最后一个)前面的;去掉

请保留此信息,不影响运行

*/

//进行压缩测试

$zip = new zip_forasp();

$zip->create_zip("newzip2");#php创建zip压缩文件名

//$zip->add_file("3/");#php向zip文件中添加文件夹

$zip->add_file("2.txt");#php想zip中添加文件

$zip->zip_close();#关闭zip对象

#进行压缩内容重命名测试

$zip1 = new zip_forasp();

$zip1->change_name("newzip.zip","3/4.bmp","3/5.bmp");#php重命名zip文件里面内容

$zip1->zip_close();

///删除文件测试

$zip2 = new zip_forasp();

$zip2->del_file("newzip.zip","file.txt");

$zip2->zip_close();

//进行解压测试

$zip4 = new zip_forasp();

$zip4->un_zip("newzip.zip");

$zip4->zip_close();

?>

测试一下吧

forasp.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值