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中截取字符串支持utf-8
Jan 18 PHP
PHP获取http请求的头信息实现步骤
Dec 16 PHP
PHP转换文件夹下所有文件编码的实现代码
Jun 06 PHP
PHP使用mysqldump命令导出数据库
Apr 14 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
分享php多功能图片处理类
May 15 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
Jul 18 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
php输出文字乱码的解决方法
Oct 04 PHP
php 命名空间(namespace)原理与用法实例小结
Nov 13 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
Yii Framework框架开发微信公众平台示例
Apr 26 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 XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
javascript字典探测用户名工具
2006/10/05 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
2014/06/24 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
2017/09/19 Javascript
template.js前端模板引擎使用详解
2017/10/10 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
详解python 爬取12306验证码
2019/05/10 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
详解Django 时间与时区设置问题
2019/07/23 Python
详解Python3 pandas.merge用法
2019/09/05 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
世界上最好的帽子:Tilley
2016/11/27 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
采购部岗位职责
2013/11/24 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
终止合同协议书范本
2016/03/22 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书