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设计模式 Factory(工厂模式)
Jun 26 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 PHP
PHP防止跨域提交表单
Nov 01 PHP
php json转换成数组形式代码分享
Nov 10 PHP
apache中为php 设置虚拟目录
Dec 17 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
PHP调用Mailgun发送邮件的方法
May 04 PHP
php分页查询mysql结果的base64处理方法示例
May 18 PHP
实例解析php的数据类型
Oct 24 PHP
PHP时间函数使用详解
Mar 21 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 PHP
PHP论坛实现积分系统的思路代码详解
Jun 01 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
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
php下目前为目最全的CURL中文说明
2010/08/01 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
编写一个javascript元循环求值器的方法
2020/04/14 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python实现提取百度搜索结果的方法
2015/05/19 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
2017/08/31 Python
一条命令解决mac版本python IDLE不能输入中文问题
2018/05/15 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
凯蒂·佩里个人女鞋品牌:Katy Perry Collections
2019/04/04 全球购物
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
python re模块和正则表达式
2021/03/24 Python
12岁生日感言
2014/01/21 职场文书
模具数控专业自荐信
2014/01/27 职场文书
送餐员岗位职责范本
2014/02/21 职场文书
保险内勤岗位职责
2014/04/05 职场文书
高中语文课后反思
2014/04/27 职场文书
汽车专业求职信
2014/06/05 职场文书
社团活动总结报告
2014/06/27 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
先进工作者推荐材料
2014/12/23 职场文书
小学生成绩单评语
2014/12/31 职场文书
大班下学期个人总结
2015/02/13 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
Java获取字符串编码格式实现思路
2022/09/23 Java/Android