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 相关文章推荐
模拟xcopy的函数
Oct 09 PHP
一个从别的网站抓取信息的例子(域名查询)
Oct 09 PHP
php学习之数据类型之间的转换代码
May 29 PHP
php中cookie的使用方法
Mar 29 PHP
ThinkPHP基本的增删查改操作实例教程
Aug 22 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
php使用PDO方法详解
Dec 27 PHP
PHP实现抓取迅雷VIP账号的方法
Jul 30 PHP
php分页查询的简单实现代码
Mar 14 PHP
php实现网页端验证码功能
Jul 11 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP实现统计代码行数小工具
Sep 19 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图像处理类分享
2014/11/18 PHP
php7 安装yar 生成docker镜像
2017/05/09 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
Python中的并发编程实例
2014/07/07 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
python3个性签名设计实现代码
2018/06/19 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
MATCHESFASHION.COM法国官网:英国奢侈品零售商
2018/01/04 全球购物
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
.net面试题
2015/12/22 面试题
应届生会计电算化求职信
2013/10/03 职场文书
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
个人催款函范文
2015/06/23 职场文书
创业计划书之网吧
2019/10/10 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
基于python制作简易版学生信息管理系统
2021/04/20 Python
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis