php实现rar文件的读取和解压

时间: 2019-01-07阅读: 391标签: 文件

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


来自:https://www.cnblogs.com/sandea/p/10230403.html


前端实现文件下载功能

通过window.open()打开新页面下载文件;通过a标签打开新页面下载文件;通过文件流的方式下载;如何实现批量下载,且打包文件

js下载文件,判断文件是否返回

下载之前用的window.location.href下载的,但是这个判别不了文件是否返回,小文件倒还好,大的文件长时间没有下载也没有加载条什么的,用户有时会点击下载好几下,大的数据很容易将服务拖垮

vue读取本地的excel文件并显示在网页上

我想实现读取一个本地的xlsx文件(task_list.xlsx)然后显示在网页上, 一开始选择的方法是建个express server, 通过发送axios请求来实现, 但是觉得只是读取一个本地文件还要搞个server太复杂了

PHP下载大文件失败,并限制下载速度

PHP在使用readfile函数定义下载文件时候,文件不可以过大,否则会下载失败,文件损坏且不报错;这个是因为readfile读取文件的时候会把文件放入缓存,导致内存溢出;解决:分段下载,并限制下载速度;

vue在index.html中引入静态文件不生效

出现该问题的标志如下,控制台warning(Resource interpreted as Stylesheet but transferred with MIME type text/html),第一种可能出现原因就是引入的静态文件在src文件夹内,这种的解决办法就是把资源引入静态资源的目录static

前端实现文件在线预览txt,pdf,doc,xls,ppt几种格式

做法就是使用iframe标签,只需要配置src就可以,根据文件后缀判断如果是office的类型就在url前加上https://view.officeapps.live.com/op/view.aspx?src=

前端文件下载的方式

http 头部的 Content-Disposition字段,规定了返回的内容用什么形式展示,前端需要使用window.open 形式访问 此路由就可以实现文件的下载

HTTP实现xls导出和上传文件处理

需求:导出节目单[不保存文件到本地],输出不同的文件类型[csv,xls,xlsx],上传[csv,xls,xlsx]导入节目单

前端实现在线预览pdf、word、xls、ppt等文件

免费纯前端方式实现在线预览word、excel、ppt最优选择微软在线预览(不可编辑),利用后端将文件转为图片,前端以图片形式预览(可行方案)

将数组转化为 csv 文件类型的代码

将一个数组转化为逗号为分割符的字符串(CSV)即表格数据。利用了 Array.prototype.map() 和 Array.prototype.join() 两个函数,实现了一个简单的数组转化为 csv 文件类型的代码。

fly63.com版权所有,内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权,请与小编联系!情况属实本人将予以删除!

广告赞助文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全