PHP zip压缩文件及解压

利用ZipArchive 类实现 只有有函数。界面大家自己写

ZipArchive(PHP 5.3 + 已自带不需要安装dll)

 /**
* 文件解压
* @param $zipFile 要解压的文件
* @param $toPath 解压到拿个目录
* @return bool
*/
function zipExtract($zipFile, $toPath)
{
if (empty($zipFile) || empty($toPath)) return false;
$zip = new ZipArchive();
$zip->open($zipFile);
$return = $zip->extractTo($toPath);
$zip->close();
return $return;
} /**
* 文件压缩 需要dirList函数支持
* @param $zipFileName 要保存的zip文件名
* @param $toPath 路径
* @return bool
*/
function ZipPack($zipFileName, $toPath)
{
$zip = new ZipArchive();
$zip->open($zipFileName, ZipArchive::OVERWRITE);
$toPath = str_replace('\\', '/', substr($toPath, -1) !== '/' ? $toPath . '/' : $toPath);
$fileList = dirList($toPath);
foreach ($fileList as $file) {
if (is_dir($file)) {
$file = str_replace($toPath, '', $file);
$zip->addEmptyDir($file);
} else {
$_file = str_replace($toPath, '', $file);
$zip->addFile($file, $_file);
}
}
$zip->close();
return empty($fileList) ? false : true;
} /**
*
* 遍历指定文件夹下的文件及文件夹
* @param $path 要遍历的路径
* @param $dir 是否需要遍历子目录 默认遍历 如果为假 则不遍历
* @return array|bool 返回一维数组
*/
function dirList($path,$dir=true)
{
$path = str_replace('\\', '/', substr($path, -1) !== '/' ? $path . '/' : $path);
if (!is_dir($path)) return false;
$return = array();
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
if ($file == '.' || $file == '..') continue;
$file = $path . $file;
$return[] = $file;
if (is_dir($file) && $dir) {
$return['dir'] = dirList($file);
foreach ($return['dir'] as $val) $return[] = $val;
}
}
closedir($handle);
}
unset($return['dir']);
return $return;
}

PHP zip压缩文件及解压的更多相关文章

  1. Java实现zip压缩文件的解压

    需求描述: 前段时间写了一篇博客<Java实现对文本文件MD5加密并ftp传送到远程主机目录>,实现了一部分的业务需求.然而有些业务可能不止传送一个文件,有时候客户需要传多个文件,原有系统 ...

  2. Android 下载zip压缩文件并解压

    网上有很多介绍下载文件或者解压zip文件的文章,但是两者结合的不多,在此记录一下下载zip文件并直接解压的方法. 其实也很简单,就是把下载文件和解压zip文件结合到一起.下面即代码: URLConne ...

  3. SpringMVC上传压缩文件,解压文件,并检测上传文件中是否有index.html

    SpringMVC上传压缩文件,解压文件,并检测上传文件中是否有index.html 说明: 1.环境:SpringMVC+Spring+Tomcat7+JDK1.7 2.支持 zip和rar格式的压 ...

  4. pclzip 压缩文件与解压

    类PclZip.class.php下载:PclZip.rar<?php header("Content-type: text/html; charset=utf-8"); f ...

  5. Unity3D研究院之LZMA压缩文件与解压文件

    原地址:http://www.xuanyusong.com/archives/3095 前两天有朋友告诉我Unity的Assetbundle是LZMA压缩的,刚好今天有时间那么就研究研究LZMA.它是 ...

  6. Android下载压缩文件与解压案例

    ackage com.example.jsontest.biz; import java.io.BufferedInputStream; import java.io.BufferedOutputSt ...

  7. 【VC++技术杂谈008】使用zlib解压zip压缩文件

    最近因为项目的需要,要对zip压缩文件进行批量解压.在网上查阅了相关的资料后,最终使用zlib开源库实现了该功能.本文将对zlib开源库进行简单介绍,并给出一个使用zlib开源库对zip压缩文件进行解 ...

  8. Linux下*.tar.bz2等文件如何解压--转

    如果tar不支持j这个参数就先用 bzip2 -d xxx.tar.bz2 把它解压成.tar文件,然后再用 tar xvf xxx.tar 拆包.压缩解压 linux下怎么解后缀名是gzip的文件? ...

  9. Mac上zip,rar,tar文件命令解压和压缩

    经常遇到在windowns上的压缩文件,在mac上解压出现问题,特意总结了下在Terminal里常用命令的方式解压和压缩文件 1.zip压缩文件 zip命令的参数很多,可以利用"zip -- ...

随机推荐

  1. hdu2952Counting Sheep

    Problem Description A while ago I had trouble sleeping. I used to lie awake, staring at the ceiling, ...

  2. php.ini配置

    PHP作为一门强大的脚本语言被越来越多的web应用程序采用,不规范的php安全配置可能会带来敏感信息泄漏.SQL注射.远程包含等问题,规范的安全配置可保障最基本的安全环境.下面我们分析几个会引发安全问 ...

  3. Uva 10652 Board Wrapping(计算几何之凸包+点旋转)

    题目大意:给出平面上许多矩形的中心点和倾斜角度,计算这些矩形面积占这个矩形点形成的最大凸包的面积比. 算法:GRAHAM,ANDREW. 题目非常的简单,就是裸的凸包 + 点旋转.这题自己不会的地方就 ...

  4. Long,String类型的两个值进行比较,注意点!!!

    一: . Long 类型指的是 java.util.Lang 对象,而不是基本类型 long (注意大小写)Java中如果使用 == 双等于比较对象,等于比较的是两个对象的内存地址,也就是比较两个对象 ...

  5. UVA 1599 Ideal Path (HDU 3760)

    两次bfs: 第一次bfs逆向搜索,得到每个点到终点的最短距离,找出最短路:第二次bfs根据最短距离可以选择满足条件的最短路. 注意!碰到这种很大数据量的题目一定要记得用scanf,printf 输入 ...

  6. SQL Server 对象

    第一项:重命名对象 execute sp_rename @objname='Nums',@newname ='Numbers',@objtype ='object'; go 这里要特别小心   @ne ...

  7. centos 安装amp 运行环境+配置虚拟地址

    一.安装 MySQL 首先来进行 MySQL 的安装.打开超级终端,输入: [root@localhost ~]# yum install mysql mysql-server 安装完毕,让 MySQ ...

  8. android textView 折叠 展开 ExpandableTextView

    项目过程中可能会用到可以折叠和展开的TextView , 这里给出一种实现思路,自定义控件. package com.example.expandtextviewdemo; import androi ...

  9. project小技巧:快捷键

    project小技巧:快捷键 任务升级         ALT  +  SHIFT + 向左键 任务降级         ALT  +  SHIFT + 向右键 滚动到表头(第一个任务)    Ctr ...

  10. 电子科大POJ "孤单整数"

    孤单整数 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) C-sources: ...