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 05 PHP
最小化数据传输――在客户端存储数据
Oct 09 PHP
php循环输出数据库内容的代码
May 24 PHP
PHP Global变量定义当前页面的全局变量实现探讨
Jun 05 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
微信公众平台开发关注及取消关注事件的方法
Dec 23 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
PHP模拟post提交数据方法汇总
Feb 16 PHP
Yii2框架使用计划任务的方法
May 25 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
ThinkPHP中create()方法自动验证实例
Apr 26 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 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
Terran历史背景
2020/03/14 星际争霸
php笔记之:php数组相关函数的使用
2013/04/26 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
PHP PDOStatement::closeCursor讲解
2019/01/30 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
JavaScript变量Dom对象的所有属性
2020/04/30 Javascript
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
python绘图方法实例入门
2015/05/19 Python
python中的全局变量用法分析
2015/06/09 Python
浅谈Python数据类型之间的转换
2016/06/08 Python
numpy找出array中的最大值,最小值实例
2018/04/03 Python
python中int与str互转方法
2018/07/02 Python
Python global全局变量函数详解
2018/09/18 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
在家更换处方镜片:Lensabl
2019/05/01 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
教师工作决心书
2015/02/04 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
新闻通讯稿模板
2015/07/22 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android