博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP zip压缩文件及解压
阅读量:5319 次
发布时间:2019-06-14

本文共 2083 字,大约阅读时间需要 6 分钟。

   PHP zip压缩文件及解压 

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

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

 

1 /** 2  * 文件解压 3  * @param $zipFile 要解压的文件 4  * @param $toPath   解压到拿个目录 5  * @return bool 6  */ 7 function zipExtract($zipFile, $toPath) 8 { 9     if (empty($zipFile) || empty($toPath)) return false;10     $zip = new ZipArchive();11     $zip->open($zipFile);12     $return = $zip->extractTo($toPath);13     $zip->close();14     return $return;15 }16 17 /**18  * 文件压缩 需要dirList函数支持19  * @param $zipFileName 要保存的zip文件名20  * @param $toPath      路径21  * @return bool22  */23 function ZipPack($zipFileName, $toPath)24 {25     $zip = new ZipArchive();26     $zip->open($zipFileName, ZipArchive::OVERWRITE);27     $toPath = str_replace('\\', '/', substr($toPath, -1) !== '/' ? $toPath . '/' : $toPath);28     $fileList = dirList($toPath);29     foreach ($fileList as $file) {30         if (is_dir($file)) {31             $file = str_replace($toPath, '', $file);32             $zip->addEmptyDir($file);33         } else {34             $_file = str_replace($toPath, '', $file);35             $zip->addFile($file, $_file);36         }37     }38     $zip->close();39     return empty($fileList) ? false : true;40 }41 42 43 /**44  *45  * 遍历指定文件夹下的文件及文件夹46  * @param $path  要遍历的路径47  * @param $dir   是否需要遍历子目录  默认遍历 如果为假 则不遍历48  * @return array|bool   返回一维数组49  */50 function dirList($path,$dir=true)51 {52     $path = str_replace('\\', '/', substr($path, -1) !== '/' ? $path . '/' : $path);53     if (!is_dir($path)) return false;54     $return = array();55     if ($handle = opendir($path)) {56         while (false !== ($file = readdir($handle))) {57             if ($file == '.' || $file == '..') continue;58             $file = $path . $file;59             $return[] = $file;60             if (is_dir($file) && $dir) {61                 $return['dir'] = dirList($file);62                 foreach ($return['dir'] as $val) $return[] = $val;63             }64         }65         closedir($handle);66     }67     unset($return['dir']);68     return $return;69 }

 

转载于:https://www.cnblogs.com/iyoule/p/3487911.html

你可能感兴趣的文章
进阶之路(基础篇) - 012 Arduino IDE 添加DHT11传感器第三方库的方法
查看>>
详谈js面向对象 javascript oop,持续更新
查看>>
Javaweb Tomcat 项目部署方式
查看>>
文字半透明显示在图片上
查看>>
express简单原理
查看>>
ubuntu安装spark on yarn
查看>>
linux网络 (一):网络配置
查看>>
基础练习 十进制转十六进制
查看>>
关于这次软件以及pda终端的培训
查看>>
react 生命周期
查看>>
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>
spring11----基于Schema的AOP
查看>>
解决input框自动填充为黄色的问题
查看>>
音视频基础知识(一)
查看>>
JAVA⑤
查看>>
CyclicBarrier的使用
查看>>
thinkphp的select和find的区别
查看>>
小程序开发笔记
查看>>
Web框架高级功能之模板、拦截器、Json、打包
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>