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 cc攻击代码与防范方法
Oct 18 PHP
php登陆页的密码处理方式分享
Oct 14 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
PHP异常处理Exception类
Dec 11 PHP
php图片添加文字水印实现代码
Mar 15 PHP
学习PHP的数组总结【经验】
May 05 PHP
一段实用的php验证码函数
May 19 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
浅谈PHP中new self()和new static()的区别
Aug 11 PHP
用PHP的反射实现委托模式的讲解
Mar 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
php获取后台Job管理的实现代码
2011/06/10 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
2019/09/16 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
2020/07/29 Javascript
用python实现批量重命名文件的代码
2012/05/25 Python
python读写文件操作示例程序
2013/12/02 Python
Python中random模块用法实例分析
2015/05/19 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
PyTorch实现AlexNet示例
2020/01/14 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
Django缓存Cache使用详解
2020/11/30 Python
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
植树节标语
2014/06/27 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
捐书活动倡议书
2015/04/27 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python