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中Session的概念
Oct 09 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
Aug 07 PHP
php获取当前网址url并替换参数或网址的方法
Jun 06 PHP
php 判断数组是几维数组
Mar 20 PHP
浅析PHP中的UNICODE 编码与解码
Jun 29 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
Jan 17 PHP
php备份数据库类分享
Apr 14 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
Dec 17 PHP
php日期操作技巧小结
Jun 25 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
PHP中localeconv()函数的用法
Mar 26 PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
php中的curl_multi系列函数使用例子
2014/07/29 PHP
smarty简单应用实例
2015/11/03 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
javascript解析json实例详解
2014/11/05 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
微信小程序 聊天室简单实现
2017/04/19 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
React父子组件间的传值的方法
2018/11/13 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
python中去空格函数的用法
2014/08/21 Python
使用pyecharts在jupyter notebook上绘图
2020/04/23 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
2018/02/11 Python
Python之文字转图片方法
2018/05/10 Python
使用python对excle和json互相转换的示例
2018/10/23 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
热能动力工程毕业生自荐信
2013/11/07 职场文书
幼儿园小班教学反思
2014/02/02 职场文书
《雨点》教学反思
2014/02/12 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
2014年教育培训工作总结
2014/12/08 职场文书