zoukankan      html  css  js  c++  java
  • php实现rar文件的读取和解压

    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,成功!

  • 相关阅读:
    JS站点
    1011 World Cup Betting (20分)
    1007 Maximum Subsequence Sum (25分)(动态规划DP)
    1006 Sign In and Sign Out (25分)
    1005 Spell It Right (20分)
    1004 Counting Leaves (30分)(DFS)
    1003 Emergency (25分)(Dijkstra算法)
    1002 A+B for Polynomials (25分)
    1001 A+B Format (20分)
    canvas
  • 原文地址:https://www.cnblogs.com/sandea/p/10230403.html
Copyright © 2011-2022 走看看