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 相关文章推荐
global.php
Dec 09 PHP
php auth_http类库进行身份效验
Mar 19 PHP
php/js获取客户端mac地址的实现代码
Jul 08 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
PHP中使用CURL获取页面title例子
Jan 07 PHP
php简单smarty入门程序实例
Jun 11 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
Feb 09 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
php提高脚本性能的4个技巧
Aug 18 PHP
PHPstorm激活码2020年5月13日亲测有效
Sep 17 PHP
你真的了解PHP中的引用符号(&)吗
May 12 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
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
用php+javascript实现二级级联菜单的制作
2008/05/06 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
保洁公司服务承诺书
2014/05/28 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
JavaScript实现两个数组的交集
2022/03/25 Javascript