PHP安装rar扩展实现对rar文件的解压和压缩

windows安装方法

1.下载扩展

下载地址:http://pecl.php.net/package/rar/3.0.2/windows

根据PHP对应版本下载。

例如我的PHP版本是5.5,64位,且是TS(线程安全)版,那么就下载http://windows.php.net/downloads/pecl/releases/rar/3.0.2/php_rar-3.0.2-5.5-ts-vc11-x64.zip

可以通过查看phpinfo里面的Thread Safety 项,如果是enabled,一般来说应该是ts版,否则是nts版。

 

2 安装扩展

2.1 下载并解压后,将php_rar.dll文件拷贝至PHP的扩展安装目录(通常在php安装目录下的ext目录,可以通过phpinfo中的extension_dir项查看)

2.2 编辑php.ini文件,加入
extension=php_rar.dll
2.3 重启服务器

重启后,在phpinfo里面看到如下信息,则表示安装成功:

Linux安装方法

1.下载扩展

下载地址:http://pecl.php.net/package/rar

2 安装扩展

运行以下命令完成安装:

gunzip rar-3.0.2.tgz
tar -xvf rar-3.0.2.tar
cd rar-3.0.2
phpize
./configure && make && make install

安装完成后,php的扩展目录会自动出现rar.so文件,只需在php.ini文件中引入即可。
编辑php.ini,加入以下代码:

extension=rar.so

重启服务器即可。

 

针对宝塔环境

gunzip rar-4.2.0.tgz
tar -xvf rar-4.2.0.tar
/www/server/php/73/bin/phpize
./configure --with-php-config=/www/server/php/73/bin/php-config
make && make install

注意 替换phpize和php-config的路径

PHP解压rar代码:

function unrar($fileName,$extractTo){
    $fileName = iconv('utf-8','gb2312',$fileName);

    $rar_file = rar_open($fileName) or die('could not open rar');
    $list = rar_list($rar_file) or die('could not get list');

    foreach($list as $file) {
        $pattern = '/\".*\"/';
        preg_match($pattern, $file, $matches, PREG_OFFSET_CAPTURE);
        $pathStr=$matches[0][0];
        $pathStr=str_replace("\"",'',$pathStr);
        $entry = rar_entry_get($rar_file, $pathStr) or die('entry not found');
        $entry->extract($extractTo); // extract to the current dir
    }
    rar_close($rar_file);
}

发表评论

邮箱地址不会被公开。 必填项已用*标注