Zip:pclzip http://www.phpconcept.net/pclzip/index.en.php
rar:pecl rar Http://pecl.php.net/package/rar
In the past to perform the decompressor under PHP, the most common way is to write command and then use EXEC () and other execution functions to run
This may be possible under Windows, but switching to UNIX can be a problem for account permissions and cannot be executed successfully
Is there a way of providing a function that can be used directly without having to go to the command to run?
The answer is (say, for several days to find a way to use ...) XD)
First zip, because PHP built in itself provides a zip-related function (but must first have ziplib function) but not very good
In light of the extract, the built-in function is only responsible for the simple decompression of the file, but not in accordance with the Data folder in order to extract
So we lose extract.
and to speak of Pclzip this, itself has provided extension, so there is no ziplib is not bad
And no installation, just need to use him when the include comes in.
For example: Such
In addition, in the Extract section, it will be extracted in accordance with the order of the Data folder, rather than simply unzip the file
Related usage like this
Copy CodeThe code is as follows:
Require_once (' pclzip.lib.php ');
$archive = new Pclzip (' Archive.zip ');
if ($archive->extract () = = 0) {/* Unzip the path to the same path as the original file */
Die ("Error:". $archive->errorinfo (true));
}
?>
Of course, you can also specify the decompression path, like this
Copy CodeThe code is as follows:
Include (' pclzip.lib.php ');
$archive = new Pclzip (' Archive.zip ');
if ($archive->extract (pclzip_opt_path, ' data ') {/*data change to a different path */
Die ("Error:". $archive->errorinfo (true));
}
?>
It would be better to write a script that automatically creates a directory, because the function itself does not determine whether the first layer in the compressed file is a file or a folder (which I think other related functions cannot!!!) )
Again is RAR, this problem is relatively large, because PHP itself does not provide a RAR-related functions, so need to help third-party function to use
Fortunately there is this PECL (the PHP Extension Community Library)
There is a RAR package that can be used
But it has to be installed manually.
If Unix, you can refer to the following installation method
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
Of course, if FreeBSD, the port will be faster
Cd/usr/ports/archivers/pecl-rar
Make
Make install
Remember to restart Apache after installation
Can be tested after installation
Copy CodeThe code is as follows:
$rar _file = Rar_open (' Example.rar ') or Die ("Failed to open rar archive");
/*example.rar change to other files */
$entries _list = rar_list ($rar _file);
Print_r ($entries _list);
?>
The comparison to note, if the port installation, the version will be relatively new (official website only to 0.3.1,port installed to 0.3.4), so the usage will be a bit of a discrepancy
But there's no difference in extract usage.
Related usage like this
Copy CodeThe code is as follows:
$rar _file = Rar_open (' Example.rar ') or Die ("Can ' t open rar archive");
/*example.rar change to other files */
$entries = rar_list ($rar _file);
foreach ($entries as $entry) {
$entry->extract ('/dir/extract/to/'); /*/dir/extract/to/change to another path */
}
Rar_close ($rar _file);
?>
As with the zip section, it's better to set up a directory automatically
http://www.bkjia.com/PHPjc/322598.html www.bkjia.com true http://www.bkjia.com/PHPjc/322598.html techarticle zip:pclzip http://www.phpconcept.net/pclzip/index.en.php rar:pecl Rar Http://pecl.php.net/package/rar In the past to execute the decompression program under PHP, the most common way is to write ...