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

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. 总结

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

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

时间: 2024-10-21 19:07:19

PhalApi-Zip--压缩文件处理类的相关文章

PHP自带ZIP压缩、解压缩类ZipArchiv使用指南

 这篇文章主要介绍了PHP自带ZIP压缩.解压缩类ZipArchiv使用指南,十分详细,需要的朋友可以参考下     要使用该PHP扩展类,需要(PHP 5 >= 5.2.0, PECL zip >= 1.1.0),部分方法需要 PHP 5.2.+,且php.ini配置支持zip 对于win系统,直接去掉php_zip.dll 扩展的注释,然后重启http服务(IIS或Apache)即可 Linux还没有试验,理论上差别不会很大 功能: 1.解压缩zip文件 2.将文件压缩成zip文件 3.追

php生成zip压缩文件两个实例详解

注意: ZipArchive来压缩文件.这个是php的扩展类,自php5.2版本以后就已经支持这个扩展,如果你在使用的时候出现错误,查看下php.ini里面的extension=php_zip.dll前面的分号有没有去掉,然后再重启Apache这样才能使用这个类库. 例1 生成zip 压缩文件  代码如下 复制代码 <?php /* 生成zip 压缩文件 */ function create_zip($files = array(),$destination = '',$overwrite =

Java创建ZIP压缩文件的方法_java

本文实例讲述了Java创建ZIP压缩文件的方法.分享给大家供大家参考.具体如下: 这里注意:建议使用org.apache.tools.zip.*包下相关类,否则可能会出现中文乱码问题. /** * 压缩文件夹 * @param sourceDIR 文件夹名称(包含路径) * @param targetZipFile 生成zip文件名 * @author liuxiangwei */ public static void zipDIR(String sourceDIR, String target

不同的机器压缩后的ZIP压缩文件上传后,有的存在中文乱码,求帮忙分析分析。

问题描述 不同的机器压缩后的ZIP压缩文件上传后,有的存在中文乱码,求帮忙分析分析. 用了commons-compress-1.8.jar下的ZipArchiveInputStream 进行的压缩包解压处理,在不同机器上对同样文件进行压缩生成zip压缩包,有的机器生成的压缩包上传后中文就乱码,有的就不是乱码,求帮忙分析分析. 解决方案 7zip 压缩文件 分析

解压-java读取zip压缩文件里面二级文件夹目录内的文件的问题

问题描述 java读取zip压缩文件里面二级文件夹目录内的文件的问题 我想在不解压的条件下得到一个压缩文件夹内部的二级目录下的文件流,但是搜了好久也没找到 代码如下 import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; impo

如何从zip压缩文件中直接提取文件到内存缓冲区

问题描述 如何从zip压缩文件中直接提取文件到内存缓冲区 目前我正在做一个程序模块,需要从zip压缩文件中提取出某个文件到内存buffer.我尝试用zlib来提取,但是失败了.用好压打开那个压缩文件显示压缩算法是Store. 补充:后来我用zlib来提取一个压缩算法是deflate的zip压缩文件提取成功了.现在面临的问题是Store压缩算法的zip文件怎么提取呢? 解决方案 看来是zlib不支持算法

ajax请求后台下载zip压缩文件问题,后台返回的是流前台不提示下载。附上ajax请求代码合后台代码

问题描述 ajax请求后台下载zip压缩文件问题,后台返回的是流前台不提示下载.附上ajax请求代码合后台代码 前台: $.ajax({ type:"POST", url:"app/downloadProduct", data:{nid:nid,name:name}, dataType:"text", success:function(data){ console.log(data); if(data!=null){ alert("ur

pb 压缩 多个文件-pb中如何将一个文件夹和一个文件压缩到一个zip压缩文件中

问题描述 pb中如何将一个文件夹和一个文件压缩到一个zip压缩文件中 在pb中如何将一个文件夹和一个文件压缩到一个zip压缩文件中,不要rar的,求高手 解决方案 可以用zlib来实现,参考以下链接 http://download.csdn.net/detail/distancehalf/3032693 或者调用winzip的命令行,通过run命令来实现

Python读写zip压缩文件

Python自带模块zipfile可以完成zip压缩文件的读写,而且使用非常方便,下面我们就来演示一下Python读写zip文件. Python读zip文件 下面的代码给出了用Python读取zip文件,打印出压缩文件里面所有的文件,并读取压缩文件中的第一个文件. import zipfile z = zipfile.ZipFile("zipfile.zip", "r") #打印zip文件中的文件列表 for filename in z.namelist( ): p

php简单创建zip压缩文件的方法_php技巧

本文实例讲述了php简单创建zip压缩文件的方法.分享给大家供大家参考,具体如下: /* creates a compressed zip file */ function create_zip($files = array(),$destination = '',$overwrite = false) { //if the zip file already exists and overwrite is false, return false if(file_exists($destinati