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巧获服务器端信息
Dec 06 PHP
Laravel 4 初级教程之Pages、表单验证
Oct 30 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
Oct 09 PHP
php实现的操作excel类详解
Jan 15 PHP
解读PHP的Yii框架中请求与响应的处理流程
Mar 17 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
Jun 22 PHP
Laravel 5.3 学习笔记之 配置
Aug 28 PHP
php解析mht文件转换成html的实例
Mar 13 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
laravel-admin 中列表筛选方法
Oct 03 PHP
php将字符串转换为数组实例讲解
May 05 PHP
tp5.1 框架join方法用法实例分析
May 26 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
记录mysql性能查询过程的使用方法
2013/05/02 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
jQuery实现长文字部分显示代码
2013/05/13 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
2014/01/26 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
Python变量作用范围实例分析
2015/07/07 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
python list转矩阵的实例讲解
2018/08/04 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
Python decimal模块使用方法详解
2020/06/08 Python
python 如何在测试中使用 Mock
2021/03/01 Python
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
人力资源主管职责范本
2014/03/05 职场文书
安全承诺书格式
2014/05/21 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
MySQL去除密码登录告警的方法
2022/04/20 MySQL