You are on page 1of 17

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.

net sites |
links | my php.net

function list
search for in the

PHP Manual
yp_order zip_close
Function
Reference

.NET printer friendly


Apache view the version of
this page Last updated: Sat, 27
APC
May 2006
APD
Arrays
Aspell CLXXVI. Zip File Functions (Read Only Access)
BC math
bcompiler Introduction
Bzip2
Calendar This module enables you to transparently read ZIP compressed archives
CCVS and the files inside them.
Classes/Obj
ects
Requirements
Classkit
ClibPDF
This module uses the functions of the ZZIPlib library by Guido Draheim.
COM You need ZZIPlib version >= 0.10.6.
Crack
ctype The PECL package version 1.1.0 and up does not require any external
CURL library. It also provides a write mode (creations and modifications). The
Cybercash new features are not yet documented, please check the examples included
CyberMUT in the releases.
Cyrus IMAP
Date/Time
Note that ZZIPlib only provides a subset of functions provided in a full
implementation of the ZIP compression algorithm and can only read ZIP
DB++
file archives. A normal ZIP utility is needed to create the ZIP file archives
dba read by this library.
dBase
DBM
Installation
dbx
Direct IO
This PECL extension is not bundled with PHP. Information for installing this
Directories PECL extension may be found in the manual chapter titled Installation of
DOM PECL extensions. Additional information such as new releases, downloads,
DOM XML source files, maintainer information, and a CHANGELOG, can be located
Errors and here: http://pecl.php.net/package/zip.
Logging
Exif In PHP 4 this PECL extensions source can be found in the ext/ directory
Expect within the PHP source or at the PECL link above. In order to use these
fam functions you must compile PHP with zip support by using the --with-
zip[=DIR] configure option.
FDF
Fileinfo
Windows users will enable php_zip.dll inside of php.ini in order to
filePro
use these functions. In PHP 4 this DLL resides in the extensions/
Filesystem
directory within the PHP Windows binaries download. You may download
Filter this PECL extension DLL from the PHP Downloads page or at
Firebird/Int http://snaps.php.net/.
erBase
Firebird/Int
Note: Zip support before PHP 4.1.0 is experimental. This section reflects
erbase (PDO)
the Zip extension as it exists in PHP 4.1.0 and later.
FriBiDi
FrontBase
FTP
Runtime Configuration
Function
handling This extension has no configuration directives defined in php.ini.
gettext
GMP Resource Types
gnupg
gopher This extension has no resource types defined.
hash
HTTP
Predefined Constants
Hyperwave
Hyperwave
API This extension has no constants defined.
ibm_db2
ICAP Examples
iconv
id3 This example opens a ZIP file archive, reads each file in the archive and
IIS prints out its contents. The test2.zip archive used in this example is
Functions one of the test archives in the ZZIPlib source distribution.
Image
IMAP Example 1. Zip Usage Example
Informix
Informix
(PDO)
<?php
Ingres II $zip = zip_open("/tmp/test2.zip");
IRC
Gateway if ($zip) {
Java
kadm5 while ($zip_entry = zip_read($zip)) {
LDAP
echo "Name: " .
zip_entry_name($zip_entry) . "\n";
libxml echo "Actual Filesize: " .
Lotus Notes zip_entry_filesize($zip_entry) . "\n";
LZF echo "Compressed Size: " .
Mail
zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " .
mailparse
zip_entry_compressionmethod($zip_entry) . "\n";
Math
MaxDB if (zip_entry_open($zip, $zip_entry, "r")) {
MCAL echo "File Contents:\n";
$buf = zip_entry_read($zip_entry,
mcrypt
zip_entry_filesize($zip_entry));
MCVE echo "$buf\n";
Memcache
mhash zip_entry_close($zip_entry);
Mimetype
}
echo "\n";
Ming (flash)
Misc. }
mnoGoSear
ch zip_close($zip);
MS SQL
Server
MS SQL }
Server (PDO)
Msession ?>
mSQL Table of Contents
Multibyte zip_close -- Close a ZIP file archive
String zip_entry_close -- Close a directory entry
muscat zip_entry_compressedsize -- Retrieve the compressed size of a directory
MySQL
entry
zip_entry_compressionmethod -- Retrieve the compression method of a
MySQL
(PDO)
directory entry
zip_entry_filesize -- Retrieve the actual file size of a directory entry
mysqli
zip_entry_name -- Retrieve the name of a directory entry
Ncurses zip_entry_open -- Open a directory entry for reading
Network zip_entry_read -- Read from an open directory entry
Newt zip_open -- Open a ZIP file archive
NSAPI zip_read -- Read next entry in a ZIP file archive
Object
Aggregation
Object add a note User Contributed Notes
overloading Zip File Functions (Read Only Access)
OCI8 nospam at hostingfanatic dot com
11-May-2006 05:27
ODBC
I needed a quick way to make a zip file from an entire
ODBC and directory including subdirectories. This is downright
DB2 (PDO)
rough but if someone would fancy it up a bit it works
OGG/Vorbis good with the zip class at
openal http://smiledsoft.com/demos/phpzip/ (free version).
OpenSSL
Oracle
Basic use in script would be...
Oracle make_archive("the/directory", $zip_archive_object);
(PDO)
Output <?php
Control
function make_archive( $dir , &$zip, $extdir="")
OvrimosSQL {
Paradox if (is_dir($dir)) {
Parsekit if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false
PCNTL
) {
PCRE if( $file != "." && $file !=
PDF ".." )
PDO {
PHP
if( is_dir( $dir .
Options/Info $file ) )
{
POSIX
POSIX $zip-
Regex
>add_file($dir.$file,$extdir.$file);
PostgreSQL
PostgreSQL
(PDO) make_archive($dir.$file."/" , $zip,
Printer $extdir.$file."/");
Program
Execution }
PS
else
{
Pspell
qtdom $zip-
radius >add_file($dir.$file,$extdir.$file);
Rar
}
Readline
Recode }
RPMReader }
runkit closedir($dh);
}
Satellite
}
SDO return true;
SDO DAS }
XML ?>
SDO-DAS- 10-May-2006 02:23
Relational I try to use the function unpackZip from schore at
Semaphore NOSPAM dot hotmail dot com.
SESAM
it appears that the fclose instruction is missing.
Session
PgSQL
Without that instruction, i've got some trouble to
unpack zip file with recursive folders.
Sessions
shmop Here is the new code with the missing instruction
SimpleXML <?php
SNMP function unpackZip($dir,$file) {
if ($zip = zip_open($dir.$file.".zip")) {
SOAP
if ($zip) {
Sockets mkdir($dir.$file);
spl while ($zip_entry = zip_read($zip)) {
SQLite if (zip_entry_open($zip,$zip_entry,"r")) {
SQLite
$buf = zip_entry_read($zip_entry,
(PDO) zip_entry_filesize($zip_entry));
$dir_name =
ssh2
dirname(zip_entry_name($zip_entry));
Statistics if ($dir_name != ".") {
Streams $dir_op = $dir.$file."/";
Strings foreach ( explode("/",$dir_name) as $k)
SWF
{
$dir_op = $dir_op . $k;
Sybase if (is_file($dir_op))
TCP unlink($dir_op);
Wrappers if (!is_dir($dir_op)) mkdir($dir_op);
tidy $dir_op = $dir_op . "/" ;
Tokenizer }
Unicode
}
URLs
$fp=fopen($dir.$file."/".zip_entry_name($zip_entry),"w
Variables ");
handling fwrite($fp,$buf);
Verisign
Payflow Pro fclose($fp);
vpopmail
W32api zip_entry_close($zip_entry);
WDDX
} else
return false;
win32ps }
win32servic zip_close($zip);
e }
xattr } else
xdiff return false;
XML
return true;
XML-RPC }
XMLReader ?>
xmlwriter angelnsn1 at hotmail dot com
XSL 27-Jan-2006 02:06
this function extract all files and subdirectories,
XSLT
you can choose verbose mode for get paths of files
YAZ extracted. the function return a msg what indicate the
YP/NIS error, if msg is OK, all is done.
Zip

Zlib ---
code:
function unzip($dir, $file, $verbose = 0) {
$dir_path = "$dir$file";
$zip_path = "$dir$file.zip";
$ERROR_MSGS[0] = "OK";
$ERROR_MSGS[1] = "Zip path $zip_path doesn't
exists.";
$ERROR_MSGS[2] = "Directory $dir_path for unzip the
pack already exists, impossible continue.";
$ERROR_MSGS[3] = "Error while opening the $zip_path
file.";
$ERROR = 0;
if (file_exists($zip_path)) {
if (!file_exists($dir_path)) {

mkdir($dir_path);
if (($link = zip_open($zip_path))) {
while (($zip_entry = zip_read($link)) &&
(!$ERROR)) {
if (zip_entry_open($link, $zip_entry,
"r")) {
$data = zip_entry_read($zip_entry,
zip_entry_filesize($zip_entry));
$dir_name =
dirname(zip_entry_name($zip_entry));
$name = zip_entry_name($zip_entry);
if ($name[strlen($name)-1] == '/') {
$base = "$dir_path/";
foreach ( explode("/", $name) as
$k) {
$base .= "$k/";
if (!file_exists($base))
mkdir($base);
}

}
else {
$name = "$dir_path/$name";
if ($verbose)
echo "extracting: $name<br>";
$stream = fopen($name, "w");
fwrite($stream, $data);
}
zip_entry_close($zip_entry);
}
else
$ERROR = 4;
}
zip_close($link);
}
else
$ERROR = "3";
}
else
$ERROR = 2;
}
else
$ERROR = 1;

return $ERROR_MSGS[$ERROR];
}
---

example:
$error = unzip("d:/www/dir/", "zipname", 1);
echo $error;

---
i hope this help you,
good bye.
ringu at mail dot ru
20-Aug-2005 01:12
i try to find function that will show exists file in
zip archive or not. of course i not found it. and so
write mine:
first will just check archive for list of files, if
not found all files function return FALSE:
function zipx_entries_exists()
{
$names=array();
$args=func_get_args();
$far_size=count($args);
if($args[0])
{
for(; $zip_entry=zip_read($args[0]);
$names[]= zip_entry_name($zip_entry));
for($x=1; $x<=$far_size;
$t+=in_array($args[$x], $names), $x++);
return $t==--$far_size;
}else{
return 'No zip file in descriptor!';
}
}
example:
$zip=zip_open('any_zip_file_zip');
var_dump(zip_entries_exists($zip, 'photo_1.jpg',
'photo_2.jpg'));
second function will try to find files in zip, if not
found it return string with names of not found files
with specified delimeter:
function zipx_entries_nonexists_list()
{
$names=array();
$args=func_get_args();
$m=NULL;
$far_size=count($args);
if($args[0])
{
for(; $zip_entry=zip_read($args[0]);
$names[]= zip_entry_name($zip_entry));

for($x=2; $x<=$far_size;
$m.=(in_array($args[$x], $names) ? NULL :
$args[$x].$args[1]), $x++);
return trim($m, $args[1]);
}else{
return 'No zip file in descriptor!';
}
}

example:
$zip=zip_open('any_zip_file_zip');
var_dump(zip_entries_nonexists_list($zip, '<br />',
'photo_1.jpg', 'photo_2.jpg'));
it will return if not found files:
photo_1.jpg<br />photo_2.jpg
tom
28-Jun-2005 04:33
If you just want to unzip a zip folder an alternative
to some of the lengthy functions below is:
<?
function unzip($zip_file, $src_dir, $extract_dir)
{
copy($src_dir . "/" . $zip_file, $extract_dir . "/" .
$zip_file);
chdir($extract_dir);
shell_exec("unzip $zip_file");
}
?>

You don't need the ZIP extension for this.


candido1212 at yahoo dot com dot br
27-Apr-2005 03:52
New Unzip function, recursive extract
Require mkdirr() (recursive create dir)
$file = "2537c61ef7f47fc3ae919da08bcc1911.zip";
$dir = getcwd();
function Unzip($dir, $file, $destiny="")
{
$dir .= DIRECTORY_SEPARATOR;
$path_file = $dir . $file;
$zip = zip_open($path_file);
$_tmp = array();
$count=0;
if ($zip)
{
while ($zip_entry = zip_read($zip))
{
$_tmp[$count]["filename"] =
zip_entry_name($zip_entry);
$_tmp[$count]["stored_filename"] =
zip_entry_name($zip_entry);
$_tmp[$count]["size"] =
zip_entry_filesize($zip_entry);
$_tmp[$count]["compressed_size"] =
zip_entry_compressedsize($zip_entry);
$_tmp[$count]["mtime"] = "";
$_tmp[$count]["comment"] = "";
$_tmp[$count]["folder"] =
dirname(zip_entry_name($zip_entry));
$_tmp[$count]["index"] = $count;
$_tmp[$count]["status"] = "ok";
$_tmp[$count]["method"] =
zip_entry_compressionmethod($zip_entry);

if (zip_entry_open($zip, $zip_entry, "r"))


{
$buf = zip_entry_read($zip_entry,
zip_entry_filesize($zip_entry));
if($destiny)
{
$path_file =
str_replace("/",DIRECTORY_SEPARATOR, $destiny .
zip_entry_name($zip_entry));
}
else
{
$path_file =
str_replace("/",DIRECTORY_SEPARATOR, $dir .
zip_entry_name($zip_entry));
}
$new_dir = dirname($path_file);

// Create Recursive Directory


mkdirr($new_dir);

$fp = fopen($dir .
zip_entry_name($zip_entry), "w");
fwrite($fp, $buf);
fclose($fp);
zip_entry_close($zip_entry);
}
echo "\n</pre>";
$count++;
}
zip_close($zip);
}
}
Unzip($dir,$file);
Nahaylo Vitalik
25-Feb-2005 02:52
Zip Class from Devin Doucette at phpclasses.org
Allows the creation of tar, gzip, bzip2, and zip
archives, and the extraction of tar, gzip, and bzip2.
Supports relative paths/no paths, comments, and
recursing through subdirectories.
Can write file to disk, allow user to download
directly, or return file contents in a string or an
array.
Does not require any external programs to run.
Here is a link:
http://www.phpclasses.org/browse/package/945.html
23-Feb-2005 04:54
If (as me) all you wanted to do is store a big string
(for example, a serialized array or the like) in a
mysql BLOB field, remember that mysql has a COMPRESS()
and UNCOMPRESS() pair of functions that do exactly
that. Compression/decompression is therefore available
also when accessing the DB from other languages like
java, etc.
Mishania AT ketsujin DOT COM
06-Jan-2005 04:19
I slightly changed the extension of Schore that makes
function operate more effiecently - less number of
itterations. This is most important in dealing with
HUGE archives. I also add comment to brief the code.
Fits for WIN users.
function unzip($dir,$file) {
$zip = zip_open($dir.$file.".zip"))
if ($zip) {
mkdir($dir.$file);
while ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip,$zip_entry,"r")) {
$buf = zip_entry_read($zip_entry,
zip_entry_filesize($zip_entry));
$hostDir = dirname(zip_entry_name($zip_entry));
/* for root "." directory nothing to be
done coase root directory was
created before the while-loop
statement */
if ($hostDir != ".") {
$absPathToHostDir = $dir.$file."\\";
/* Convrerts path string upon to FMS &
OS-WIN configuration */
foreach ( explode("/",$hostDir) as $k)
$absPathToHostDir = $absPathToHostDir . $k
. "\\";
$absPathToHostDir =
substr($absPathToHostDir,0,-1);
if (is_file($absPathToHostDir))
unlink($absPathToHostDir);
if (!is_dir($absPathToHostDir))
mkdir($absPathToHostDir);
/* Stores Archive entries BOTH as file:
Directories & Files;
for this porpose we need these 2
hereabove [IF] checks */
$fp=fopen($dir.$file."\\".zip_entry_name($zip_entry),"
w");
fwrite($fp,$buf);
fclose($fp);
zip_entry_close($zip_entry);
}
}
else {
echo "unable open - ";
return false;
}
} // while-loop end
zip_close($zip);
}
else
return false;
return true;
}
schore at NOSPAM dot hotmail dot com
13-Dec-2004 06:55
I have had problems with the function of kristiankjaer
to unpack zipfiles within any directories.
So I wrote a little extension.
<?php
function unpackZip($dir,$file) {
if ($zip = zip_open($dir.$file.".zip")) {
if ($zip) {
mkdir($dir.$file);
while ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip,$zip_entry,"r")) {
$buf = zip_entry_read($zip_entry,
zip_entry_filesize($zip_entry));
$dir_name =
dirname(zip_entry_name($zip_entry));
if ($dir_name != ".") {
$dir_op = $dir.$file."/";
foreach ( explode("/",$dir_name) as $k)
{
$dir_op = $dir_op . $k;
if (is_file($dir_op))
unlink($dir_op);
if (!is_dir($dir_op)) mkdir($dir_op);
$dir_op = $dir_op . "/" ;
}
}

$fp=fopen($dir.$file."/".zip_entry_name($zip_entry),"w
");
fwrite($fp,$buf);
zip_entry_close($zip_entry);
} else
return false;
}
zip_close($zip);
}
} else
return false;
return true;
}
?>
kristiankjaer AT gmail DOT com
06-Dec-2004 12:06
Here is a function if all you need is to unpack an
archive:
function unpackZip($dir,$file) {
$root=$_SERVER['DOCUMENT_ROOT'];
if ($zip = zip_open($root.$dir.$file.".zip")) {
if ($zip) {
mkdir(".".$dir.$file);
while ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip,$zip_entry,"r")) {
$buf = zip_entry_read($zip_entry,
zip_entry_filesize($zip_entry));
$fp=fopen(".".$dir.$file."/".zip_entry_name($zip_entry
),"w");
fwrite($fp,$buf);
zip_entry_close($zip_entry);
} else
return false;
}
zip_close($zip);
}
} else
return false;
return true;
}
01-Jul-2004 12:40
PKZipfiles (or Winzip files) can be easily created by
using my Ziplib class, can be found on
http://sourceforge.net/projects/phpziplib . All it
requires is PHP to be compiled with zlib, and support
for classes(don't know when they've been added, but I
think with PHP4 you're safe).
php at isaacschlueter dot com
23-Jun-2004 11:15
If you don't have the --with-zip=DIR compile option
and can't change it, but you do have --with-pear, then
you can use the pear Archive_Zip class available at
http://cvs.php.net/pear/Archive_Zip/

As of 2004-06-23, the class isn't packaged and auto-


documented yet, but like all pear classes, the
comments are extremely verbose and helpful, and you
can download the php file as a standalone. Just
include the Zip.php in your project, and you can use
the class.
krishnendu at spymac dot com
31-May-2004 08:28
If you want to unzip an password protected file with
php..try the following command....it works in
Unix/Apache environment...I haven't tested in any
other environment...
system("`which unzip` -P Password $zipfile -d
$des",$ret_val)
Where $zipfile is the path to the .zip to be unzipped
and $des is path to the destination directory.....here
both absolute and relative path to the script (which
contains this system command) will work...
if everything runs well...file should be unzipped at
the $des directory..and you will get 0 value for
$ret_val , which means success(info-zip.org)
Regards
Krishnendu
postmaster at alishomepage dot com
24-Jan-2004 11:28
I have written an OpenSource ZIP2FTP interface, which
actually takes a given ZIP file and decompresses it in
the folder on an FTP server you specify...
Therefore it may be quite interesting for you people
interested in ZIP, its adress is
http://zip2ftp.alishomepage.com ; those who directly
want the source may visit
http://zip2ftp.alishomepage.com/?do=getSource
Hannes Gassert
02-Dec-2003 05:53
As of lately this extension has moved to PECL. You
find it at it's new home at
http://pecl.php.net/package/zip.
`pear install http://pecl.php.net/get/zip-1.0.tgz `
installs it, use dl('zip.so'); to load it after
successful installation.
master_auer at web dot de
17-Nov-2003 12:49
Hey guys, maybe you should check this out:
http://www.phpconcept.net/pclzip/index.en.php
A complete library to write and read ZIP files. The
only requirement is zLib.
Hope I could help
Regards
Manuel
vbwebprofi at gmx dot de
13-Nov-2003 05:05
For more informations about the ZIP-format visit this
document :
http://www.pkware.com/products/enterprise/white_papers
/appnote.html
So you be able to write your own ZIP and UNZIP code
... ;o)
Regards
Holger
Joris P.
04-Sep-2003 04:36
"If you just want to unzip everything of a zip file in
a directory"
Watch out with that function, your fopen function uses
'r' instead of 'rb' and the fwrite does not include a
filesize. So if you have binary files into that zip
file (what you probably do), it will go wrong...
phpContrib (A T) esurfers d o t c o m
18-Jul-2003 09:41
Sometimes you may not be able to install the necessary
resources to run the ZIP lib. Maybe because you have
no control of the server, or maybe because you cannot
find the correct libraries for your php...
Anyway do not despair, there is another solution!

I was in this situation (my client could not install


it on the server) so I developed a small libraryin
pure PHP that is compatible with PHP's own lib but
uses the commandline 'unzip' command directly form
PHP. You can configure it to use any commandline
unzipping tool (so it should work even with other
compressed files, as long as there is a commandline
tool). It should work on most platforms with an unzip
command (Win32 included) although I have tested only
under unix.
What it does exactly, is replacing all the functions
of the Zip library with equivalent ones. So the
example in this page will work (just rename every
zip_... function m_zip_...):
<?php
$zip =m_zip_open("/tmp/test2.zip");
if ($zip) {
while ($zip_entry = m_zip_read($zip)) {
echo "Name: " .
m_zip_entry_name($zip_entry) . "\n";
echo "Actual Filesize: " .
m_zip_entry_filesize($zip_entry) . "\n";
echo "Compressed Size: " .
m_zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " .
m_zip_entry_compressionmethod($zip_entry) . "\n";
if (m_zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:\n";
$buf = m_zip_entry_read($zip_entry,
zip_entry_filesize($zip_entry));
echo "$buf\n";
m_zip_entry_close($zip_entry);
}
echo "\n";

}
m_zip_close($zip);
}
?>
The library will create a new folder and call unzip on
the file when you call m_zip_open().
It will get rid of all the unzipped things when you
call m_zip_close().
It will walk the directory structure of the ZIP file
as you call m_zip_read($zip) getting into directories
and then out again.
Then you will be able to read chunks of (or th whole)
files with m_zip_entry_read()
: : : INCOMPATIBILITIES : : :
Once the zipfile is unzipped, I will have no way to
know the size of the entries or the compression
methods, so the functions m_zip_entry_compressedsize()
and m_zip_entry_compressionmethod() just return a '?'.
Of course what zipfiles will be compatible and what
not will dependo on the command line tool you choose
to use.
: : : CONFIGURATION : : :
There are two things to setup:
A path to a directory where we can create subfolders
and unzip things:
define('UNZIP_DIR','/data/fandango/html/update/unzippe
d/');
The command to invoke to unzip the files:

define('UNZIP_CMD','unzip -o @_SRC_@ -x -d @_DST_@');


DO NOT REMOVE THE @_SRC_@ and @ _DST_@ markers. This
is where the library will put the source file name you
pass and the destination subfolder (it will create a
subfolder of UNZIP_DIR and pass that)
: : : DOWNLOAD : : :
You will find the library and a demo file (with the
example on this page) at http://esurfers.com/m-zip/
travis
17-Jun-2003 05:06
just a not of caution--using the dynamic zip class
mentioned earlier seems to cause issues with high
ascii characters (their values are not preserved
correctly, and the file will not unzip)
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
chris
23-Mar-2003 06: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.
ottawasixtyseven at hotmail dot com
29-Oct-2002 08: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.
http://zziplib.sourceforge.net/
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:
http://zziplib.sourceforge.net/zziplib.html
Newbie Von Greenhorn
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.
bermi[arroba]akelos.com
04-Oct-2002 01:27
Here is a link to a class for creating and reading zip
files
http://www.phpconcept.net/pclzip/
guidod at gmx dot de
16-Apr-2002 06:22
- look at - http://zipios.sf.net -
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
fbiggun at hotmail dot com
03-Jan-2002 09:29
Check out these pages on the Zend Web Site. The author
of the zipfile class explains how his class runs!
Have fun ;)

http://www.zend.com/zend/spotlight/creating-zip-
files1.php
http://www.zend.com/zend/spotlight/creating-zip-
files2.php
http://www.zend.com/zend/spotlight/creating-zip-
files3.php
vangoethem at hotmail dot com
28-Dec-2001 07: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.5.2:
http://www.phpmyadmin.net/
add a note

yp_order zip_close
Last updated: Sat, 27 May 2006

show source | credits | stats | sitemap | contact | advertising | mirror sites

Copyright © 2001-2006 The PHP Group This mirror generously provided by: Directi Web Hosting
All rights reserved. Last updated: Thu Jun 1 07:17:21 2006 GMT

You might also like