php解压缩zip和rar压缩包文件的方法

941次阅读
没有评论

项目涉及文档处理,用户上传的包括 zip 和 rar 压缩包,需要先将压缩包解压后再作处理。对于 zip 压缩包,由于 php 自带 zip 扩展,可以直接解压。

解压 zip 压缩包:

$file = "/opt/data/upload/testfile.zip";
$outPath = "/opt/data/upload/testfile";
$zip = new ZipArchive();
$openRes = $zip->open($file);
if ($openRes === TRUE) {$zip->extractTo($outPath);
  $zip->close();}

对于 rar 压缩包,需要先为 php 安装 rar 扩展。

安装 rar 扩展:

wget http://pecl.php.net/get/rar-4.0.0.tgz
gunzip rar-4.0.0.tgz
tar -xvf rar-4.0.0.tar
cd rar-4.0.0
phpize
./configure && make && make install
# 报错
configure: error: Cannot find php-config. Please use --with-php-config=PATH
# 运行./configure 时指定 php-config 路径即可
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

配置 rar 扩展:

# 新建 /usr/local/php/conf.d/rar.ini,内容
extension=rar.so

重启 php-fpm,看一下 phpinfo();

可以看到已经成功安装了 rar,可以来测试一下解压 rar 文件。

解压 RAR 压缩包

$file = "/opt/data/upload/testfile.zip";
$outPath = "/opt/data/upload/testfile";
$rar_file = rar_open($file);
if ($rar_file) {$entries = rar_list($rar_file);
  foreach ($entries as $entry) {$entry->extract($outPath);
  }
  rar_close($rar_file);
}

这样就搞定用户上传的压缩包解压的问题了。

正文完
 0
飞翔的mouse
版权声明:本站原创文章,由 飞翔的mouse 于2019-09-26发表,共计959字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。