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递归列出所有文件和目录的代码
Sep 10 PHP
PHP n个不重复的随机数生成代码
Jun 23 PHP
php中创建和调用webservice接口示例
Jul 25 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
PHP框架Laravel的小技巧两则
Feb 10 PHP
分享十款最出色的PHP安全开发库中文详细介绍
Mar 22 PHP
在Debian系统下配置LNMP的教程
Jul 09 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
微信JSSDK分享功能图文实例详解
Apr 08 PHP
Laravel 框架控制器 Controller原理与用法实例分析
Apr 14 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
不错的PHP学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
Python实现类继承实例
2014/07/04 Python
跟老齐学Python之永远强大的函数
2014/09/14 Python
Python中的默认参数详解
2015/06/24 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
详解python调度框架APScheduler使用
2017/03/28 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
Noon埃及:埃及在线购物
2019/11/26 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
几个常见的软件测试问题
2016/09/07 面试题
计算机开发个人求职信范文
2013/09/26 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript