柔晶美网络工作室

柔晶美网络工作室,倾心于web技术的博客站点

关注我 微信公众号

您现在的位置是: 首页 > 博客日记

centos7.6使用宝塔后手动安装php_rar扩展,让PHP可以读取解压和压缩RAR文件

2020-10-31 admin php  linux  1582

因为在项目中需要预览用户上传的RAR文件,在linux中为了方便使用了宝塔面板安装一键PHP环境,但宝塔自带的扩展管理中不包含rar,因此需要手工安装,安装过程如下:

先下载扩展:

cd /www/
wget https://pecl.php.net/get/rar-4.1.0.tgz

然后解压:

tar -xvf rar-4.1.0.tar

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

cd rar-4.1.0
/www/server/php/73/bin/phpize

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

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

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

编译源码:

make && make install

编译完成在最后会提示生成的rar.so所在的路径,如下:

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

宝塔面板编辑php7.3的配置文件,在最后添加:

[rar]
extension="/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/rar.so"

重启php7.3即可。如何使用呢?请看下面的示例代码:

    //预览rar压缩包内容
    public function readrar($file){
    $file = str_replace(env('APP_URL').'/','',$file);//要用相对路径
        $rar_file = rar_open($file) or die("无法打开RAR文件!");
        $entries = rar_list($rar_file);
        foreach ($entries as $entry) {
            $filename = $entry->getName();//文件名
$wjlx = pathinfo($filename, PATHINFO_EXTENSION);//文件类型
$size1 = sprintf("%.2f",$entry->getUnpackedSize() / 1024) . 'KB';//压缩前大小
$size2 = sprintf("%.2f",$entry->getPackedSize() / 1024) . 'KB';//压缩后大小
$time = $entry->getFileTime();//创建时间
$filenames[] = array('文件名'=>$filename,'类型'=>$wjlx,'压缩前大小'=>$size1,'压缩后大小'=>$size2,'创建时间'=>$time);
        } 
        rar_close($rar_file);
        return $filenames;
}

记录完毕。

文章评论


需要 登录 才能发表评论
热门评论
0条评论

暂时没有评论!