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中显示数组与对象的实现代码
Apr 18 PHP
PHP中把stdClass Object转array的几个方法
May 08 PHP
两种设置php载入页面时编码的方法
Jul 29 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
php获取本周星期一具体日期的方法
Apr 20 PHP
学习php设计模式 php实现单例模式(singleton)
Dec 07 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
Aug 01 PHP
laravel5.4生成验证码的实例讲解
Aug 05 PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 PHP
浅谈laravel-admin的sortable和orderby使用问题
Oct 03 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生成高清缩略图实例详解
2015/12/07 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
JS启动应用程序的一个简单例子
2008/05/11 Javascript
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
2016/12/24 Javascript
JavaScript数组和对象的复制
2017/03/21 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
React props和state属性的具体使用方法
2018/04/12 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python中异常重试的解决方案详解
2017/05/05 Python
python实现二叉查找树实例代码
2018/02/08 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
django rest framework serializers序列化实例
2020/05/13 Python
python关于倒排列的知识点总结
2020/10/13 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
Exception类的常用方法
2012/06/16 面试题
力学专业毕业生自荐信
2013/11/17 职场文书
项目经理任命书内容
2014/06/06 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
文言文辞职信
2015/02/28 职场文书
2015年招商引资工作总结
2015/04/25 职场文书
在校证明模板
2015/06/17 职场文书
中秋节祝酒词
2015/08/12 职场文书
Python实现批量自动整理文件
2022/03/16 Python