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. SQLServer游标详解

    一.游标概念 我们知道,关系数据库所有的关系运算其实是集合与集合的运算,它的输入是集合输出同样是集合,有时需要对结果集逐行进行处理,这时就需要用到游标.我们对游标的使用一本遵循“五步法”:声明游标—& ...

  2. mvc 笔记

    @{ ViewBag.Title = "主页"; } <div> 这里就是渲染Body啦.~~不需要写神马<asp:Content />,其实因为Rende ...

  3. canvas入门

    <html> <head> <script> window.onload=function(){ var canvas=document.getElementByI ...

  4. list集合接口

    import java.util.ArrayList; import java.util.List; class Phone { private String brand; private doubl ...

  5. 关于Asp.net超时,延长读取sql server数据库的超时时间!(已解决)

    昨天,接到客户反映说应用报“超时时间已到.在操作完成之前超时时间已过或服务器未响应”问题.从网上了一些资料,发现这个问题还是很普遍的.主要有以下两种解决方法: 第一种方法:在web.config中加上 ...

  6. python学习day9

    目录 一.队列 二.生产者消费者模型 三.协程 四.select\poll\epoll 五.paramiko 六.mysql API调用 一.队列(queue) 队列分以下三种: class queu ...

  7. c++ 17介绍

    作者:hearts zh链接:https://www.zhihu.com/question/32222337/answer/55238928来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...

  8. 2014第7周四excel多列文本复制技巧

    刚才win8.1强制安装更新后重启,然后一直显示“安装更新失败正在,正在撤销更改,请不要关闭计算机”,等了很久还是不行,我还是强制按下了电源按钮,然后再次开机还是这样,实在没办法只能等,过了N久后没想 ...

  9. linux之SQL语句简明教程---WHERE

    我们并不一定每一次都要将表格内的资料都完全抓出.在许多时候,我们会需要选择性地抓资料.就我们的例子来说,我们可能只要抓出营业额超过 $1,000 的资料.要做到这一点,我们就需要用到 WHERE 这个 ...

  10. 2.5 Local Methods in High Dimensions

    curse of dimensionality 输入在p维立方体中符合均匀分布,如果需要覆盖比例r的体积,需要每个维度上\(e_p(r)=r^{1/p}\) \(e_{10}(0.01)=0.63,e ...