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 不错的学习资料
Feb 06 PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
PHP插入排序实现代码
Apr 04 PHP
关于js和php对url编码的处理方法
Mar 04 PHP
CI框架安全类Security.php源码分析
Nov 04 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
Thinkphp+smarty+uploadify实现无刷新上传
Jul 30 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
PHP反射API示例分享
Oct 08 PHP
php json转换相关知识(小结)
Dec 21 PHP
laravel5.5添加echarts实现画图功能的方法
Oct 09 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
PHP4(windows版本)中的COM函数
2006/10/09 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
php实现图片上传并进行替换操作
2016/03/15 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
JS时间特效最常用的三款
2015/08/19 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
pycharm修改file type方式
2019/11/19 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
学python爬虫能做什么
2020/07/29 Python
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
Noon埃及:埃及在线购物
2019/11/26 全球购物
三查三看党性分析材料
2014/02/18 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
人事代理委托书
2014/09/27 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang