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 相关文章推荐
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
PHP 手机归属地查询 api
Feb 08 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Dec 29 PHP
PHP中MVC模式的模板引擎开发经验分享
Mar 23 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
destoon各类调用汇总
Jun 20 PHP
php生成shtml类用法实例
Dec 09 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
Jul 09 PHP
PHP中include/require/include_once/require_once使用心得
Aug 28 PHP
php简单截取字符串代码示例
Oct 19 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 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
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
php 如何获取数组第一个值
2013/08/06 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
jquery预览图片实现鼠标放上去显示实际大小
2014/01/16 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
幼儿教师自我鉴定
2013/11/02 职场文书
初一体育教学反思
2014/01/29 职场文书
会计学专业求职信
2014/07/17 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
redis三种高可用方式部署的实现
2021/05/11 Redis