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 相关文章推荐
PHP 中的类
Oct 09 PHP
PHP与SQL注入攻击[一]
Apr 17 PHP
利用php+mysql来做一个功能强大的在线计算器
Oct 12 PHP
php学习之 循环结构实现代码
Jun 09 PHP
php实现的获取网站备案信息查询代码(360)
Sep 23 PHP
PHP+memcache实现消息队列案例分享
May 21 PHP
destoon之一键登录设置
Jun 21 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
修改Laravel5.3中的路由文件与路径
Aug 10 PHP
php实现数据库的增删改查
Feb 26 PHP
PHP PDO操作MySQL基础教程
Jun 05 PHP
浅谈PHP匿名函数和闭包
Mar 08 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中的string类型使用说明
2010/07/27 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
2013/06/24 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
浅谈python之新式类
2018/08/12 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
python画图的函数用法以及技巧
2019/06/28 Python
PyQt5实现画布小程序
2020/05/30 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
纯css3实现宠物小鸡实例代码
2018/10/08 HTML / CSS
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
行政人员岗位职责
2013/12/08 职场文书
大学生职业生涯规划书模板
2014/01/18 职场文书
保护地球的标语
2014/06/17 职场文书
节约用水的口号
2014/06/20 职场文书
财务部岗位职责
2015/02/03 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
校园广播稿范文
2015/08/19 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
python多次执行绘制条形图
2022/04/20 Python
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang