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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
php mysql索引问题
Jun 07 PHP
php 获取客户端的真实ip
Nov 30 PHP
php多用户读写文件冲突的解决办法
Nov 06 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
Yii操作数据库的3种方法
Mar 11 PHP
php获取系统变量方法小结
May 29 PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 PHP
PHP编程实现阳历转换为阴历的方法实例
Aug 08 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
thinkPHP实现基于ajax的评论回复功能
Jun 22 PHP
PHP PDOStatement::fetchColumn讲解
Jan 31 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读取flv文件的播放时间长度
2009/09/03 PHP
PHP创建/删除/复制文件夹、文件
2016/05/03 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
不错的一个日期输入 动态
2006/11/06 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
web打印小结
2017/01/11 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
十大热门的JavaScript框架和库
2017/03/21 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
新手vue构建单页面应用实例代码
2017/09/18 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
js删除指定位置超链接中含有百度与360的标题
2021/01/06 Javascript
简单解决Python文件中文编码问题
2015/11/22 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
详解Python 函数如何重载?
2019/04/23 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
耐克亚太地区:Nike APAC
2019/12/07 全球购物
体育教师自荐信范文
2013/12/16 职场文书
出国英文推荐信
2014/05/10 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
转让协议书
2015/01/27 职场文书
八年级物理教学反思
2016/02/19 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL