Indeed, zip_entry_read does not return FALSE, but an empty string on EOF.
Confirmed here on PHP 5.4.6 (linux).
zip_entry_read
(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
zip_entry_read — Read from an open directory entry
Description
string zip_entry_read
( resource
$zip_entry
[, int $length
] )Reads from an open directory entry.
Parameters
-
zip_entry -
A directory entry returned by zip_read().
-
length -
The number of bytes to return. If not specified, this function will attempt to read 1024 bytes.
Note:
This should be the uncompressed length you wish to read.
Return Values
Returns the data read, or FALSE if the end of the file is
reached.
See Also
- zip_entry_open() - Open a directory entry for reading
- zip_entry_close() - Close a directory entry
- zip_entry_filesize() - Retrieve the actual file size of a directory entry
Tof ¶
3 months ago
Twan ¶
3 years ago
It seems that zip_entry_read returns an empty string (i.e. '') at the end of file instead of FALSE. At least in PHP 5.3 on Windows XP.
Matt ¶
7 years ago
When reading from a zip file if the initial call to zip_entry_read() returns false it would be advisable to run mkdir with the file name since it it very likely that the zero length file was a directory and attempts to save the files within the directory will fail if you dont create it first
