php解压缩zip和rar压缩包文件的方法


Posted in PHP onJuly 10, 2019

项目涉及文档处理,用户上传的包括 zip 和 rar 压缩包,需要先将压缩包解压后再作处理。对于 zip 压缩包,由于 php 自带 zip 扩展,可以直接解压。

解压zip压缩包:

$file = "/opt/data/upload/testfile.zip";
$outPath = "/opt/data/upload/testfile";
$zip = new ZipArchive();
$openRes = $zip->open($file);
if ($openRes === TRUE) {
  $zip->extractTo($outPath);
  $zip->close();
}

对于 rar 压缩包,需要先为 php 安装 rar 扩展。

安装rar扩展:

wget http://pecl.php.net/get/rar-4.0.0.tgz
gunzip rar-4.0.0.tgz
tar -xvf rar-4.0.0.tar
cd rar-4.0.0
phpize
./configure && make && make install
# 报错
configure: error: Cannot find php-config. Please use --with-php-config=PATH
# 运行./configure 时指定php-config路径即可
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

配置rar扩展:

# 新建 /usr/local/php/conf.d/rar.ini,内容
extension=rar.so

重启 php-fpm ,看一下 phpinfo() ;

可以看到已经成功安装了 rar ,可以来测试一下解压 rar 文件。

解压RAR压缩包:

$file = "/opt/data/upload/testfile.zip";
$outPath = "/opt/data/upload/testfile";
$rar_file = rar_open($file);
if ($rar_file) {
  $entries = rar_list($rar_file);
  foreach ($entries as $entry) {
    $entry->extract($outPath);
  }
  rar_close($rar_file);
}

这样就搞定用户上传的压缩包解压的问题了。

总结

以上所述是小编给大家介绍的php解压缩zip和rar压缩包文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
PHP中的日期及时间
Nov 23 PHP
PHP 源代码压缩小工具
Dec 22 PHP
WordPress判断用户是否登录的代码
Mar 17 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
PHP中的函数-- foreach()的用法详解
Jun 24 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
php计算数组不为空元素个数的方法
Jan 27 PHP
php实现格式化多行文本为Js可用格式
Apr 15 PHP
学习php设计模式 php实现命令模式(command)
Dec 08 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 #PHP
实例分析10个PHP常见安全问题
Jul 09 #PHP
PHP批斗大会之缺失的异常详解
Jul 09 #PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
Jul 09 #PHP
PHP+Redis开发的书签案例实战详解
Jul 09 #PHP
使用composer命令加载vendor中的第三方类库 的方法
Jul 09 #PHP
Laravel+Intervention实现上传图片功能示例
Jul 09 #PHP
You might like
PHP5 安装方法
2006/10/09 PHP
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
PHP JSON 数据解析代码
2010/05/26 PHP
PHP 八种基本的数据类型小结
2011/06/01 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
golang与PHP输出excel示例
2016/07/22 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
ExtJs使用总结(非常详细)
2012/03/22 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
JS实现长图上下滚动效果
2020/03/19 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python中内建函数的简单用法说明
2016/05/05 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
python用什么编辑器进行项目开发
2020/06/17 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
党的群众路线剖析材料
2014/10/09 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书