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 array_slice函数的使用以及参数详解
Aug 30 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
写出高质量的PHP程序
Feb 04 PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 PHP
基于PHP文件操作的详解
Jun 05 PHP
解析php中如何直接执行SHELL
Jun 28 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
PHP完全二叉树定义与实现方法示例
Oct 09 PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 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双层循环(九九乘法表)
2017/10/23 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
Javascript JSQL,SQL无处不在,
2010/05/05 Javascript
javascript中"/"运算符常见错误
2010/10/13 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
下载给定网页上图片的方法
2014/02/18 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
Python之Sklearn使用入门教程
2021/02/19 Python
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
连锁酒店店长职责范本
2014/02/13 职场文书
体育运动会广播稿
2014/10/05 职场文书
2014年材料员工作总结
2014/11/19 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
企业安全生产检查制度
2015/08/06 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS