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+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
PHP与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
PHP生成不同颜色、不同大小的tag标签函数
Sep 23 PHP
PHP使用CURL实现多线程抓取网页
Apr 30 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
Dec 21 PHP
PHP支付系统设计与典型案例分享
Aug 02 PHP
如何用PHP做到页面注册审核
Mar 02 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
php微信开发之关键词回复功能
Jun 13 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 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
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
Python Socket使用实例
2017/12/18 Python
python 解压pkl文件的方法
2018/10/25 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
致长跑运动员加油稿
2014/02/20 职场文书
保护环境建议书
2014/03/12 职场文书
社会发展项目建议书
2014/08/25 职场文书
市场营销工作计划书
2014/09/15 职场文书
学生逃课检讨书
2015/02/17 职场文书
作弊检讨书范文
2015/05/06 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
病房管理制度范本
2015/08/06 职场文书
Redis如何实现分布式锁
2021/08/23 Redis