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+MYSQL的文章管理系统(一)
Oct 09 PHP
php file_get_contents函数轻松采集html数据
Apr 22 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
Feb 02 PHP
PHP数据类型之布尔型的介绍
Apr 28 PHP
php遍历数组的4种方法总结
Jul 05 PHP
thinkphp模板输出技巧汇总
Nov 24 PHP
php打包压缩文件之ZipArchive方法用法分析
Apr 30 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
PHP让数组中有相同值的组成新的数组实例
Dec 31 PHP
java解析json方法总结
May 16 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 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视频拍照上传头像功能实现代码分享
2015/10/08 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
javascript刷新父页面方法汇总详解
2019/10/10 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
Python实现随机选择元素功能
2017/09/14 Python
详解python中asyncio模块
2018/03/03 Python
Django添加sitemap的方法示例
2018/08/06 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
详解Python学习之安装pandas
2019/04/16 Python
Python Gitlab Api 使用方法
2019/08/28 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
办公室副主任职责范本
2014/03/08 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android
js 数组 fill() 填充方法
2021/11/02 Javascript
angular异步验证器防抖实例详解
2022/03/31 Javascript
mysql全面解析json/数组
2022/07/07 MySQL