php使用ZipArchive函数实现文件的压缩与解压缩


Posted in PHP onOctober 27, 2015

PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法这里就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流。这里整理一下利用php zipArchive进行文件的压缩与解压缩的常用的示例供参考。
一、解压缩zip文件

$zip=new ZipArchive;//新建一个ZipArchive的对象 
  if($zip->open('test.zip')===TRUE){ 
  $zip->extractTo('images');//假设解压缩到在当前路径下images文件夹内 
  $zip->close();//关闭处理的zip文件 
}

二、将文件压缩成zip文件

$zip=new ZipArchive; 
if($zip->open('test.zip',ZipArchive::OVERWRITE)===TRUE){ 
  $zip->addFile('image.txt');//假设加入的文件名是image.txt,在当前路径下 
  $zip->close(); 
}

三、文件追加内容添加到zip文件

$zip=new ZipArchive; 
$res=$zip->open('test.zip',ZipArchive::CREATE); 
if($res===TRUE){ 
  $zip->addFromString('test.txt','file content goes here'); 
  $zip->close(); 
  echo 'ok'; 
}else{ 
  echo 'failed'; 
}

四、将文件夹打包成zip文件

function addFileToZip($path,$zip){ 
  $handler=opendir($path); //打开当前文件夹由$path指定。 
  while(($filename=readdir($handler))!==false){ 
    if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和‘..',不要对他们进行操作 
      if(is_dir($path."/".$filename)){// 如果读取的某个对象是文件夹,则递归 
        addFileToZip($path."/".$filename, $zip); 
      }else{ //将文件加入zip对象 
        $zip->addFile($path."/".$filename); 
      } 
    } 
  } 
  @closedir($path); 
} 
$zip=new ZipArchive(); 
if($zip->open('images.zip', ZipArchive::OVERWRITE)=== TRUE){ 
  addFileToZip('images/', $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法 
  $zip->close(); //关闭处理的zip文件 
}

以上就是php实现文件的压缩与解压缩的四种不同情况,可能还有其他情况没有补充完整,在之后的文章中陆续更新,希望这篇文章对大家的学习有所帮助。

PHP 相关文章推荐
提问的智慧
Oct 09 PHP
PHP+AJAX实现无刷新注册(带用户名实时检测)
Dec 02 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
php从memcache读取数据再批量写入mysql的方法
Dec 29 PHP
PHP登录(ajax提交数据和后台校验)实例分享
Dec 29 PHP
PHP 序列化和反序列化函数实例详解
Jul 18 PHP
Django中的cookie与session操作实例代码
Aug 17 PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 PHP
使用PHP开发留言板功能
Nov 19 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 PHP
php实现商城购物车的思路和源码分析
Jul 23 PHP
phpstorm激活码2020附使用详细教程
Sep 25 PHP
php常量详细解析
Oct 27 #PHP
php过滤所有的空白字符(空格、全角空格、换行等)
Oct 27 #PHP
PHP的APC模块实现上传进度条
Oct 27 #PHP
php+ajax制作无刷新留言板
Oct 27 #PHP
一个完整的php文件上传类实例讲解
Oct 27 #PHP
php邮件发送的两种方式
Apr 28 #PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 #PHP
You might like
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
Javascript实例教程(19) 使用HoTMetal(2)
2006/12/23 Javascript
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
理解 JavaScript 预解析
2009/10/25 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
Json解析的方法小结
2016/06/22 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
python中的一些类型转换函数小结
2013/02/10 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
wxPython实现分隔窗口
2019/11/19 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
重构Python代码的六个实例
2020/11/25 Python
python requests库的使用
2021/01/06 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
python如何修改文件时间属性
2021/02/05 Python
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
自我评价怎么写好呢?
2013/12/05 职场文书
女子职高个人自荐书
2014/02/01 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
学用政策心得体会
2014/09/10 职场文书
期末考试复习计划
2015/01/19 职场文书
保洁员岗位职责
2015/02/04 职场文书
教师工作表现自我评价
2015/03/05 职场文书
2016年父亲节寄语
2015/12/04 职场文书
Python办公自动化解决world文件批量转换
2021/09/15 Python
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers