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
(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
zip_entry_read — Read from an open directory entry
$length= 1024 ] )
Reads from an open directory entry.
A directory entry returned by zip_read().
The number of bytes to return.
This should be the uncompressed length you wish to read.
Returns the data read, empty string on end of a file, or
FALSE on error.