PhalApi-Zip--压缩文件处理类

简介: PhalApi-Zip -- 压缩文件处理类 前言 这是笔者在工作中,同事找到的一个比较不错的文件压缩类,也经过了实际的使用很不错所以分享处理,特此鸣谢:@牧鱼人 附上: 官网地址:http://www.phalapi.net/ 开源中国Git地址:http://git.oschi

PhalApi-Zip -- 压缩文件处理类

前言

这是笔者在工作中,同事找到的一个比较不错的文件压缩类,也经过了实际的使用很不错所以分享处理,特此鸣谢:@牧鱼人

附上:

官网地址:http://www.phalapi.net/

开源中国Git地址:http://git.oschina.net/dogstar/PhalApi/tree/release

开源中国拓展Git地址:http://git.oschina.net/dogstar/PhalApi-Library

1. 安装使用

此扩展只需要简单的把文件放到Library目录下即可使用使用方法如下:

 $zip = new Zip_Lite();

遍历指定文件夹

 $zip  = new Zip_Lite();
 $filelist = $zip->visitFile(文件夹路径);
 print "当前文件夹的文件:<p>\r\n";
 foreach($filelist as $file)
     printf("%s<br>\r\n", $file);

压缩到服务器

$zip = new Zip_Lite();
$zip->Zip("需压缩的文件所在目录", "ZIP压缩文件名");

压缩并直接下载

$zip = new Zip_Lite();
$zip->ZipAndDownload("需压缩的文件所在目录");

解压文件

 $zip   = new Zip_Lite();
 $zipfile   = "ZIP压缩文件名";
 $savepath  = "解压缩目录名";
 $zipfile   = $unzipfile;
 $savepath  = $unziptarget;
 $array     = $zip->GetZipInnerFilesInfo($zipfile);
 $filecount = 0;
 $dircount  = 0;
 $failfiles = array();
 set_time_limit(0);  // 修改为不限制超时时间(默认为30秒)

 for($i=0; $i<count($array); $i++) {
     if($array[$i][folder] == 0){
         if($zip->unZip($zipfile, $savepath, $i) > 0){
             $filecount++;
         }else{
             $failfiles[] = $array[$i][filename];
         }
     }else{
         $dircount++;
     }
 }
 set_time_limit(30);
printf("文件夹:%d&nbsp;&nbsp;&nbsp;&nbsp;解压文件:%d&nbsp;&nbsp;&nbsp;&nbsp;失败:%d<br>\r\n", $dircount, $filecount, count($failfiles));
if(count($failfiles) > 0){
    foreach($failfiles as $file){
        printf("&middot;%s<br>\r\n", $file);
    }
}

获取被压缩文件的信息

$zip = new Zip_Lite();
$array = $zip->GetZipInnerFilesInfo(ZIP压缩文件名);
for($i=0; $i<count($array); $i++) {
    printf("<b>&middot;%s</b><br>\r\n", $array[$i][filename]);
    foreach($array[$i] as $key => $value)
       printf("%s => %s<br>\r\n", $key, $value);
    print "\r\n<p>------------------------------------<p>\r\n\r\n";
}

2. 总结

希望此拓展能够给大家带来方便以及实用!

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

相关文章
|
1月前
|
算法 Linux
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
|
算法 安全 Java
java对zip、rar、7z文件带密码解压实例
本文采用java语言实现了对zip和rar、7z文件的解压统一算法。并对比了相应的解压速度,支持传入密码进行在线解压。
1242 0
java对zip、rar、7z文件带密码解压实例
|
11月前
|
Java
java 实现zip 压缩 解压 (目录控制)
java 实现zip 压缩 解压 (目录控制)
267 0
|
Java 关系型数据库 MySQL
SpringBoot 导出多个Excel文件,压缩成.zip格式下载
SpringBoot 导出多个Excel文件,压缩成.zip格式下载
742 0
SpringBoot 导出多个Excel文件,压缩成.zip格式下载
|
前端开发 Java
如何使用zip工具类打包下载压缩图片?
如何使用zip工具类打包下载压缩图片?
如何使用zip工具类打包下载压缩图片?
|
SQL IDE Shell
zip包自动解压缩脚本 | 学习笔记
快速学习zip包自动解压缩脚本
488 0
java两种方式压缩文件到zip文件内
java两种方式压缩文件到zip文件内
267 0
|
Linux
zip和unzip区分
zip和unzip区分
156 0
|
Python
Python 技术篇-用zipfile库进行zip文件的压缩与解压实例演示,python压缩本地文件夹为zip文件并保留目录结构
Python 技术篇-用zipfile库进行zip文件的压缩与解压实例演示,python压缩本地文件夹为zip文件并保留目录结构
298 0
Python 技术篇-用zipfile库进行zip文件的压缩与解压实例演示,python压缩本地文件夹为zip文件并保留目录结构