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 相关文章推荐
对javascript和select部件的结合运用
Oct 09 PHP
FCKeditor的安装(PHP)
Jan 13 PHP
PHP 数组入门教程小结
May 20 PHP
PHP 简单数组排序实现代码
Aug 05 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
PHP动态柱状图实现方法
Mar 30 PHP
PHP获取文件行数的方法
Jun 10 PHP
PHP实现事件机制的方法
Jul 10 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
Laravel5中防止XSS跨站攻击的方法
Oct 10 PHP
php简单截取字符串代码示例
Oct 19 PHP
PHP缓存工具XCache安装与使用方法详解
Apr 09 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函数匹配图片并加上链接的方法
2013/02/06 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
Python实现的简单万年历例子分享
2014/04/25 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
总裁办公室主任职责
2014/01/02 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
党委班子对照检查材料
2014/08/19 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python