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 相关文章推荐
BBS(php & mysql)完整版(五)
Oct 09 PHP
56.com视频采集接口程序(PHP)
Sep 22 PHP
实用函数4
Nov 08 PHP
Wordpress php 分页代码
Oct 21 PHP
PHP设计模式 注册表模式
Feb 05 PHP
nginx+php-fpm配置文件的组织结构介绍
Nov 07 PHP
thinkphp3.0 模板中函数的使用
Nov 13 PHP
Drupal7连接多个数据库及常见问题解决
Mar 02 PHP
PHP简单实现断点续传下载的方法
Sep 25 PHP
php自动提交表单的方法(基于fsockopen与curl)
May 09 PHP
Laravel 加载第三方类库的方法
Apr 20 PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 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
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
php类声明和php类使用方法示例分享
2014/03/29 PHP
PHP递归创建多级目录
2015/11/05 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
jQuery 联动日历实现代码
2012/05/31 Javascript
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
JS实现黑客帝国文字下落效果
2015/09/01 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
用python编写第一个IDA插件的实例
2018/05/29 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
线程同步的方法
2016/11/23 面试题
毕业生医学检验求职信
2013/10/16 职场文书
学校对教师的评语
2014/04/28 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
生活小常识广播稿
2014/09/16 职场文书
生产车间管理制度
2015/08/04 职场文书
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android