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 相关文章推荐
用IE远程创建Mysql数据库的简易程序
Oct 09 PHP
php处理斐波那契数列非递归方法
Feb 04 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
php目录遍历函数opendir用法实例
Nov 20 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
PHP实现无限级分类(不使用递归)
Oct 22 PHP
Yii2创建多界面主题(Theme)的方法
Oct 08 PHP
PHP小偷程序的设计与实现方法详解
Oct 15 PHP
PHP+Ajax异步带进度条上传文件实例
Nov 01 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
PHP常用函数总结(180多个)
Dec 25 PHP
PHP实现微信提现功能(微信商城)
Nov 21 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 fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
url传递的参数值中包含&时,url自动截断问题的解决方法
2016/08/02 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
javascript基础知识讲解
2017/01/11 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python绑定方法与非绑定方法详解
2017/08/18 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
Python之时间和日期使用小结
2019/02/14 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
Django框架 信号调度原理解析
2019/09/04 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
python中pop()函数的语法与实例
2020/12/01 Python
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
家长给幼儿园的表扬信
2014/01/09 职场文书
更夫岗位责任制
2014/02/11 职场文书
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
教师演讲稿开场白
2014/08/25 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
Win2008系统搭建DHCP服务器
2022/06/25 Servers