PHP 8.3.4 Released!

zip_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_readRead next entry in a ZIP file archive

Warning

This function has been DEPRECATED as of PHP 8.0.0. Relying on this function is highly discouraged.

Description

zip_read(resource $zip): resource|false

Reads the next entry in a zip file archive.

Parameters

zip

A ZIP file previously opened with zip_open().

Return Values

Returns a directory entry resource for later use with the zip_entry_... functions, or false if there are no more entries to read, or an error code if an error occurred.

Changelog

Version Description
8.0.0 This function is deprecated in favor of the Object API, see ZipArchive::statIndex().

See Also

add a note

User Contributed Notes 3 notes

up
7
Anonymous
4 years ago
*Here is a simple example*
<?php
$zp
= zip_open('file.zip');

while (
$file = zip_read($zp)) {
echo
zip_entry_name($file).PHP_EOL;
}
?>

The output will be something similar to:

myfile.txt
mydir/
up
1
Christian
10 years ago
Note: Only the first 65535 entries will be returned, even if your archive contains more entries. See https://bugs.php.net/bug.php?id=59118 for details.
up
-17
nico at nicoswd dot com
16 years ago
If you get an error like this:

Warning: zip_read() expects parameter 1 to be resource, integer given in xxxxxx on line x

It's because zip_open() failed to open the file and returned an error code instead of a resource. It took me a while to figure out why it failed to open the file, until I tried to use the FULL path to the file.

<?php

// Even if the file exists, zip_open() will return an error code.
$file = 'file.zip';
$zip = zip_open($file);

// The workaround:
$file = getcwd() . '/file.zip';

// Or:
$file = 'C:\\path\\to\\file.zip';

?>

This worked for me on Windows at least. I'm not sure about other platforms.
To Top