PHP Rar Archiving 模块 (php_rar) 是一个读取和解压rar文件的模块,但不提供RAR压缩(打包)的功能。

1.首先要到PECL的RAR页面下载DLL. 根据自己的情况选择下载对应版本的DLL.

PHP版本要求:php_rar模块适用于php 5.2及以上, 不过对于windows系统,似乎只有php5.3 / 5.4对应的DLL下载。

2.下载到的是个zip包,将其中的php_rar.pdb和php_rar.dll两个文件解压到PHP安装目录下的ext子目录中。

3.在php.ini中加入一行php_rar扩展引用声明 extension=php_rar.dll

4.如果使用Apache服务器,就需要重启Apache。IIS下以FastCGI模式加载的PHP则不需要进一步操作了。

5.解压缩zip文件  方法一

$zip = new ZipArchive();//新建一个ZipArchive的对象
if ($zip->open(读取上传文件路径) === TRUE){

$zip->extractTo(解压文件路径);//假设解压缩到在当前路径下images文件夹的子文件夹php
    $zip->close();//关闭处理的zip文件
}

6.解压缩zip文件  方法二

$archive = new PclZip(读取上传文件路径);
if ($archive->extract(PCLZIP_OPT_PATH, 解压文件路径)){ /*data换成其他路径即可*/
    //die("Error : ".$archive->errorInfo(true));
} try {
    $folder_list = my_scandir(解压文件路径);  
} catch (Exception $e) {
}

7.解压缩rar文件

$rar_file = rar_open(读取上传文件路径) or die("Failed to open Rar archive");
$entries = rar_list($rar_file);
foreach ($entries as $entry) {
    $entry->extract(解压文件路径); /*/dir/extract/to/换成其他路径即可*/

rar_close($rar_file);

安装rar Linux环境插件

先到rar扩展的主页https://pecl.php.net/package/rar因为服务器上运行的是php 7.2支持最新版本rar扩展,那就下载最新版4.0.0。

wget https://pecl.php.net/get/rar-4.0.0.tgz

然后解压

gunzip rar-4.0.0.tgztar -xvf rar-4.0.0.tar

查看宝塔面板php7.2安装路径下的是否存在/www/server/php/72/bin/phpize,如果存在,进入刚才解压的目录执行这个phpize

cd rar-4.0.0/www/server/php/72/bin/phpize

在解压目录里执行phpize主要是为了侦测当前php运行环境,给rar源码生成configure配置的相关文件,以便后期编译需要。

运行configure ,注意后面的--with-php-config参数一定不能缺,这个的作用是关联上当前需要关联的php版本,尤其是在安装多个不同版本php时。

./configure --with-php-config=/www/server/php/72/bin/php-config

编译源码

make && make install

编译完成在最后会提示生成的rar.so所在的路径。

Build complete.Don't forget to run 'make test'.Installing shared extensions: /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/

在php7.2的配置文件php.ini最后一行添加

[rar]

extension="/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/rar.so"

重启一下相应版本的php7.2 fpm服务,或者干脆重启一下服务器。

检查一下php7.2是否加载rar扩展成功

/www/server/php/72/bin/php -m

看到执行命令后返回的文字里面有rar,成功!

php实现rar文件的读取和解压的更多相关文章

  1. C#文件或文件夹压缩和解压方法(通过ICSharpCode.SharpZipLib.dll)

    我在网上收集一下文件的压缩和解压的方法,是通过ICSharpCode.SharpZipLib.dll 来实现的 一.介绍的目录 第一步:下载压缩和解压的 ICSharpCode.SharpZipLib ...

  2. java实现文件的压缩和解压

    java实现文件的压缩和解压 代码压缩实现 package com.hjh.demo.zip; import java.io.BufferedInputStream; import java.io.F ...

  3. C#文件或文件夹压缩和解压

    C#文件或文件夹压缩和解压方法有很多,本文通过使用ICSharpCode.SharpZipLib.dll来进行压缩解压 1.新建一个winform项目,选择项目右键 管理NuGet程序包,搜索ICSh ...

  4. linux下文件加密压缩和解压的方法

    一.用tar命令 对文件加密压缩和解压 压缩:tar -zcf  - filename |openssl des3 -salt -k password | dd of=filename.des3 此命 ...

  5. [Swift通天遁地]七、数据与安全-(9)文件的压缩和解压

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  6. 用jdk1.6的pack200和unpack200,对jar文件进行压缩和解压 .pack.gz

    用jdk1.6的pack200和unpack200,对jar文件进行压缩和解压 解压xxx.jar.pack.gz为xxx.jar:unpack200 -r xxx.jar.pack.gz xxx.j ...

  7. gz文件的压缩和解压

    gz文件的压缩和解压 压缩: gzip filename 解压: gunzip filename.gz

  8. 【C#公共帮助类】WinRarHelper帮助类,实现文件或文件夹压缩和解压,实战干货

    关于本文档的说明 本文档使用WinRAR方式来进行简单的压缩和解压动作,纯干货,实际项目这种压缩方式用的少一点,一般我会使用第三方的压缩dll来实现,就如同我上一个压缩类博客,压缩的是zip文件htt ...

  9. Java解压上传zip或rar文件,并解压遍历文件中的html的路径

    1.本文只提供了一个功能的代码 public String addFreeMarker() throws Exception { HttpSession session = request.getSe ...

随机推荐

  1. VMware vSphere 5.1 群集深入解析(一)

    http://virtualbox.blog.51cto.com/531002/1168293 VMware vSphere 5.1 Clustering Deepdive HA.DRS.Storag ...

  2. winf

    真的,先亮注册码!!(直接复制即可) 注册码: <第1组> 用户名:大眼仔~旭(Anan) 注册码:01000000007002140V <第2组> 用户名:大眼仔~旭(Ana ...

  3. Endorsement 业务逻辑介绍

    本文主要介绍保单系统中Endorsement功能的基本逻辑和过程,主要参考OIC系统 保单系统 保险公司用来管理保单的信息系统,这里简称为保单系统.主要作用是收集和维护投保人信息和投保信息,计算保费, ...

  4. windows快捷键补充?

      win + + 放大镜 win + r osk 虚拟键盘 win + r psr 自带屏幕录制   文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论

  5. C# Chart控件的使用总结1

    (1)来自SQL server 此时就可以用查询语句,来获取你要用到的数据 (要引用如下命名空间: using System.Data.SqlClient; usingSystem.Windows.F ...

  6. vue框架整体流程

    1.整体流程 (1)模板解析成render函数 (2)响应式监听 (3)首次渲染,显示页面,绑定依赖 (4)data属性变化,触发rerender 2.模板解析为render函数 参考上一篇博客. 模 ...

  7. 【DB2】表空间相关详细说明

    -.创建表空间 1.创建用户表空间 声明:在指定表空间创建路径的时候,需要指定空文件夹,非空文件夹会导致创建报错!!!如果文件夹不存在,那么在创建表空间的时候会自动创建文件夹! 1.1 创建SMS表空 ...

  8. mysql数据导出为excel文件

    select * from  xi_table  into  outfile  ’d:test.xls’

  9. String类原理分析及部分方法

    //String类原理分析及部分方法 //http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html //http://www.cnblo ...

  10. 最大整数(Noip1998连接多位数)

    最大整数(Noip1998连接多位数)[问题描述] 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:343312 ...