search
HomeBackend DevelopmentPHP TutorialPHP执行zip与rar解压缩方法实现代码_PHP

Zip:PclZip http://www.phpconcept.net/pclzip/index.en.php
Rar:PECL rar http://pecl.php.net/package/rar
以往过去要在php下执行解压缩程序,无非最常见的方法是写command 然后用exec()等执行函式去跑
这在Windows下或许可以,但换成Unix话会碍于帐号权限问题而无法顺利执行
那有没有那种本身就有提供函式可以直接使用而不需要去下command去跑的方法呢
答桉有(话说找了好几天才找到可以用的方法......XD)
先讲Zip,由于php内建本身就有提供zip相关函式(但须先要有ziplib函式)但不是很好用
就光extract来讲,内建函式只负责单纯解压缩档桉出来,而不是会按照资料夹依序解压缩出来
这样就失去extract的作用
而要讲的 PclZip 这支,本身就有提供 extension 了,故有没有Ziplib就没差
且免安装,只需要再用他时 include 进来就可以了
例如: 这样
此外在extract部分,则是会按照资料夹顺序依序解压缩出来,而并非单纯解压缩档桉出来
相关用法像这样
复制代码 代码如下:
require_once('pclzip.lib.php');
$archive = new PclZip('archive.zip');
if ($archive->extract() == 0) { /*解压缩路径跟原始档相同路径*/
die("Error : ".$archive->errorInfo(true));
}
?>

当然也可以指定解压缩路径,像这样
复制代码 代码如下:
include('pclzip.lib.php');
$archive = new PclZip('archive.zip');
if ($archive->extract(PCLZIP_OPT_PATH, 'data') { /*data换成其他路径即可*/
die("Error : ".$archive->errorInfo(true));
}
?>

如果再写一支自动建立目录的script会更好,因为函式本身不会判断压缩档裡第一层是档桉还是资料夹(这我想其他相关函式也做不到吧!!!)
再来是Rar,这问题比较大,由于php本身没提供rar相关函式,所以需要求助第三方函式来用
所幸有这个 PECL(The PHP Extension Community Library)
裡面有个 rar 的 package 可以使用
不过须得手动安装才行
若是 Unix 话,可以参考下列安装法

fetch http://pecl.php.net/get/rar-x.x.x.tgz
gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install

当然若是 freebsd 话,用 port 装会更快

cd /usr/ports/archivers/pecl-rar
make
make install

记得安装完后须 restart apache
安装完后可以做测试
复制代码 代码如下:
$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");
/*example.rar换成其他档桉即可*/
$entries_list = rar_list($rar_file);
print_r($entries_list);
?>

比较要注意的,若是用 port 安装话,版本会比较新(官网只有到0.3.1,port 安装话已经到0.3.4),所以用法上会有些出入
但extract用法上并无差异
相关用法像这样
复制代码 代码如下:
$rar_file = rar_open('example.rar') or die("Can't open Rar archive");
/*example.rar换成其他档桉即可*/
$entries = rar_list($rar_file);
foreach ($entries as $entry) {
$entry->extract('/dir/extract/to/'); /*/dir/extract/to/换成其他路径即可*/
}
rar_close($rar_file);
?>

跟Zip部分一样,若搭配自动建立目录会更好

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
linux如何解压rarlinux如何解压rarJan 23, 2024 pm 03:48 PM

解压步骤:1、确保系统中已经安装了RAR工具;2、使用“unrar x file.rar”命令解压RAR文件;3、使用“unrar x *.rar”命令解压多个RAR文件;4、指定解压路径;5、列出RAR文件内容;6、解压加密的RAR文件;7、解压分卷RAR文件;8、解压到指定目录并保持目录结构;9、批量解压RAR文件。

HTML 文件压缩成 ZIP 的最佳指南HTML 文件压缩成 ZIP 的最佳指南Apr 09, 2024 pm 04:09 PM

压缩HTML文件成ZIP可提高页面加载速度。方法包括:使用在线工具(如FileOptimizer、TinyPNG)使用命令行工具(如gzip、7-zip)使用Node.js脚本(使用zlib模块)

linux压缩zip命令怎么用linux压缩zip命令怎么用Oct 08, 2023 pm 01:25 PM

zip命令是Linux系统中一个非常有用的压缩工具。通过使用zip命令,您可以轻松地将文件和目录压缩成一个zip文件,并节省存储空间和方便传输。zip命令的基本语法为“zip [选项] [压缩文件名] [要压缩的文件或目录]”。

在 Windows 11 上如何解压缩文件在 Windows 11 上如何解压缩文件Oct 11, 2023 pm 09:09 PM

如果您不知道如何在Windows11上解压缩文件,则可能无法安装某些软件或查看其他人以存档格式发送给您的文件。此过程执行起来非常简单,在今天的指南中,我们将向您展示在Windows11上执行此操作的最佳方法。如何在Windows11中解压缩文件?1.使用上下文菜单在您的PC上找到zip文件并右键单击它。接下来,选择“全部提取”。选择提取位置,然后单击“提取”按钮。等待Windows提取文件。2.使用第三方工具下载WinZip并安装它。双击要提取的zip文件。现在单击解压缩到并选择目标文件夹。3.

迅雷怎么免费解压缩文件 免费解压的方法迅雷怎么免费解压缩文件 免费解压的方法Mar 12, 2024 pm 03:04 PM

  我们在使用这款平台的时候都可以使用免费解压文件的方法,这样可以打开我们所下载的一些压缩包,当然还有诸多的一些文件等,都是可以直接的从上面所能够慢慢的了解得到的,很多用户们可能对此都并没有多少的了解,所以这也是能够让我们更好的进行对于功能的一些使用都是可以的,这也是更加方便了我们以后在下载别的文件时候都能够更好的运用,效果方面还是可以的,所以今日小编就来给你们带来多种完全不同的一些使用效果,如此好用的功能,你怎么还不来了解呢,还不知道的小伙伴们赶紧来看一下下方的一些攻略讲解吧,精彩不容错过了。

centos7下解压文件命令(zip)详解centos7下解压文件命令(zip)详解Jan 07, 2024 pm 06:30 PM

1.压缩文件夹为zip文件[root@cgls]#zip-rmydata.zipmydata2.把mydata.zip解压到mydatabak目录里面[root@cgls]#unzipmydata.zip-dmydatabak3.mydata01文件夹和mydata02.txt压缩成为mydata.zip[root@cgls]#zipmydata.zipmydata01mydata02.txt4.直接解压mydata.zip文件[root@cgls]#unzipmydata.zip5.查看myd

mac解压rar用什么软件mac解压rar用什么软件Mar 03, 2023 pm 04:18 PM

mac解压rar的软件:1、The Unarchiver,是一款完全免费、小巧,而且非常易于使用的压缩、解压缩小工具;2、Keka,是一款免费、实用的压缩、解压缩工具,支持解压缩RAR格式的压缩包;3、360压缩大师,是一款免费的压缩、解压缩软件,完全支持RAR文件解压;4、MacZip,支持包括RAR在内的超过20种压缩格式的解压;5、BetterZip;6、FastZip。

7-Zip软件如何解压缩文件-7-Zip软件如何设置、取消压缩包密码​7-Zip软件如何解压缩文件-7-Zip软件如何设置、取消压缩包密码​Mar 18, 2024 pm 05:25 PM

7-Zip不仅是一款完全免费的开源解压软件,它的解压缩功能也很强大,可以支持视频、文档、文件夹、图片等文件进行压缩操作。那么7-Zip软件如何解压缩文件?7-Zip软件如何设置、取消压缩包密码呢?下面就让小编给大家解答下吧!7-Zip如何压缩文件:1.打开7-Zip软件,选择需要压缩的文件或文件夹,然后点击菜单中的【添加】选项。2.弹出窗口后,选择压缩文件的格式,然后点击下方【确定】就可以进行压缩了。7-Zip如何解压压缩文件:1.打开7-Zip软件,选择需要解压的压缩包,然后点击菜单中的【提取

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.