|
|
CXII. Zip File Functions (Read Only Access)Introduction
This module enables you to transparently read ZIP compressed
archives and the files inside them.
Requirements
This module uses the functions of the library by Guido Draheim.
You need ZZIPlib version >= 0.10.6.
Note that ZZIPlib only provides a subset of functions
provided in a full implementation of the ZIP compression algorithm
and can only read ZIP file archives. A normal ZIP utility is
needed to create the ZIP file archives read by this library.
Installation
Zip support in PHP is not enabled by default. You will need to
use the --with-zip[=DIR]
configuration option when compiling PHP to enable zip support.
참고:
Zip support before PHP 4.1.0 is experimental. This section
reflects the Zip extension as it exists in PHP 4.1.0 and later.
Runtime ConfigurationThis extension has no configuration directives defined in php.ini. Resource TypesThis extension has no resource types defined. Predefined ConstantsThis extension has no constants defined. Examples
This example opens a ZIP file archive, reads each file in the
archive and prints out its contents. The
test2.zip archive used in this example is
one of the test archives in the ZZIPlib source distribution.
예 1. Zip Usage Example <?php
$zip = zip_open("/tmp/test2.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($zip_entry) . "\n";
echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n";
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";
if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:\n";
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
echo "$buf\n";
zip_entry_close($zip_entry);
}
echo "\n";
}
zip_close($zip);
}
?> |
|
User Contributed Notes Zip File Functions (Read Only Access) |
add a note |
vangoethem at hotmail dot com
28-Dec-2001 06:51 |
|
If you are looking for a way to create ZIP files dynamically in PHP, you
should look at the wonderful zipfile class.
It seems there is no
official page for this class. You may get it by retrieving the zip.lib.php
from the PhpMyAdmin 2.2.2:
|
|
fbiggun at hotmail dot com
03-Jan-2002 08:29 |
|
Check out these pages on the Zend Web Site. The author of the zipfile class
explains how his class runs!
Have fun ;)
|
|
guidod at gmx dot de
16-Apr-2002 06:22 |
|
- look at - - it
is a C++ class that can also write zip files. it is modelled after the
resp. java interface.
Please also note that I (Guido Draheim) can
not answer questions on compiling zziplib-support into php, I did
not add it, and I do not know anything about the php module interface.
If you find bugs or have suggestions for more features then I would
be pleased to hear about it. TIA, guido
|
|
bermi[arroba]akelos.com
04-Oct-2002 01:27 |
|
Here is a link to a class for creating and reading zip files
|
|
a1cypher at shaw dot ca
11-Oct-2002 12:28 |
|
For creating zip files, I highly suggest that you have a look at the class
used in phpMyAdmin. It makes it very easy to do and it appears to be
opensource.
|
|
ottawasixtyseven at hotmail dot com
29-Oct-2002 07:04 |
|
WOW ... after weeks and weeks of research I thought I'd make somebody elses
life a little easier. If you're wondering how to make PHP 4.2.3 read
windows zip files (winzip, pkzip, etc) do this:
NOTE: THIS IS FOR
WINDOWS SERVERS NOT LINUX OR OTHER. You need zziplib for Linux.
ON
PHP WINDOWS SERVER
1) Grab the php_zip.dll from the extensions dir
in php-4.3.0pre2-Win32.zip
2) Add a line extension=php_zip.dll to
your php.ini
3) Restart your web server
php_zip.dll
obviously works on PHP 4.3.0pre2 but you can't run Zend Optimizer on PHP
4.3 (yet). You can run Zend Optimizer on PHP 4.2.3 but it doesn't ship
with php_zip.dll. The php_zip.dll that ships with PHP 4.3.0pre2 may even
work with older version but I haven't tested that.
For
documentation on how to use the zip functions (not the gzip functions that
are documented on the php site) go here:
Newbie
Von Greenhorn
|
|
chris
23-Mar-2003 05:32 |
|
Watch out with archives that contain subfolders if you're using the zip
functions to extract archives to actual files. Let's say you're trying to
extract foldername/filename.txt from the archive. You can't fopen a
directory that doesn't exist, so you'll have to check for the existance of
directory foldername and create it if it isn't found, then fopen
foldername/filename.txt and begin writing to that.
|
|
NOSP at M dot patrick_allaert(AROBAS)pandora dot be
08-Apr-2003 05:08 |
|
If you just want to unzip everything of a zip file in a directory (and
create unexisting directories), let's try this:
function
unzip($file, $path) { $zip = zip_open($file); if ($zip) {
while ($zip_entry = zip_read($zip)) { if
(zip_entry_filesize($zip_entry) > 0) { // str_replace must
be used under windows to convert "/" into "\"
$complete_path =
$path.str_replace('/','\\',dirname(zip_entry_name($zip_entry)));
$complete_name = $path.str_replace
('/','\\',zip_entry_name($zip_entry));
if(!file_exists($complete_path)) { $tmp = '';
foreach(explode('\\',$complete_path) AS $k) { $tmp .=
$k.'\\'; if(!file_exists($tmp)) {
mkdir($tmp, 0777); } } }
if (zip_entry_open($zip, $zip_entry, "r")) { $fd
= fopen($complete_name, 'w'); fwrite($fd,
zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)));
fclose($fd); zip_entry_close($zip_entry); }
} } zip_close($zip); } }
To use this
function: unzip('c:\\file.zip','c:\\temp\\'); // BE CAREFULL: second
argument *MUST* finish by a "\" ! ("/" under
*nix)
Patrick
|
|
add a note |
| |