PHP执行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部分一样,若搭配自动建立目录会更好

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Decompression steps: 1. Make sure the RAR tool has been installed in the system; 2. Use the "unrar x file.rar" command to decompress RAR files; 3. Use the "unrar x *.rar" command to decompress multiple RAR files; 4. Specify decompression Path; 5. List the contents of the RAR file; 6. Decompress the encrypted RAR file; 7. Decompress the volume RAR files; 8. Decompress to the specified directory and maintain the directory structure; 9. Decompress RAR files in batches.

Compressing HTML files into ZIP can improve page loading speed. Methods include: using online tools (such as FileOptimizer, TinyPNG) using command line tools (such as gzip, 7-zip) using Node.js scripts (using the zlib module)

The zip command is a very useful compression tool in Linux systems. By using the zip command, you can easily compress files and directories into a zip file and save storage space and facilitate transfer. The basic syntax of the zip command is "zip [options] [compressed file name] [file or directory to be compressed]".

When we use this platform, we can use the method of free decompression of files, so that we can open some compressed packages we downloaded, and of course there are many files, etc., which can be understood directly from the above. Obtained, many users may not know much about this, so this also allows us to better use some functions. This is also more convenient for us when downloading other files in the future. It can be used better, and the effect is still good, so today I will bring you a variety of completely different usage effects. Why haven’t you come to know about such a useful function? For those of you who don’t know it yet, Friends, hurry up and take a look at some of the strategy explanations below. You can’t miss this excitement.

If you don't know how to unzip files on Windows 11, you may not be able to install certain software or view files that others have sent you in archive format. This process is very simple to perform, and in today's guide we will show you the best way to do it on Windows 11. How to unzip files in Windows 11? 1. Find the zip file on your PC using the context menu and right-click on it. Next, select "Extract All." Select the extraction location and click the "Extract" button. Wait for Windows to extract the files. 2. Use a third-party tool to download WinZip and install it. Double-click the zip file you want to extract. Now click Extract to and select the destination folder. 3.

1. The compressed folder is a zip file [root@cgls]#zip-rmydata.zipmydata2. Unzip mydata.zip into the mydatabak directory [root@cgls]#unzipmydata.zip-dmydatabak3.mydata01 folder and mydata02.txt are compressed into mydata.zip[root@cgls]#zipmydata.zipmydata01mydata02.txt4. Decompress the mydata.zip file directly [root@cgls]#unzipmydata.zip5. View myd

7z and zip are both lossless compressions. 7z is a mainstream and efficient compression format with a very high compression ratio; the ZIP file format is a file format for data compression and document storage. 7z has a higher compression ratio, followed by zip; the zip format is more common and has a wide range of technologies, and the windows operating system supports the zip format by default.

Software for decompressing rar on mac: 1. The Unarchiver, a completely free, compact, and very easy-to-use compression and decompression tool; 2. Keka, a free, practical compression and decompression tool that supports decompression RAR format compressed package; 3. 360 Compression Master is a free compression and decompression software that fully supports RAR file decompression; 4. MacZip supports the decompression of more than 20 compression formats including RAR; 5. BetterZip ; 6. FastZip.
