note 75840 added to function.zip-open
| From: | saulius at solmetra dot lt | Date: | Mon, 18 Jun 2007 15:28:16 +0000 |
| Subject: | note 75840 added to function.zip-open | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-127537@lists.php.net to get a copy of this message | ||
Some older PHP versions used to return false if zip_open failed, and newer versions return the
number of error (as integer), so instead of this:
$zip = zip_open($zip_file);
if ($zip) {
// consider zip file opened successfully
}
use this:
$zip = zip_open($zip_file);
if (is_resource($zip)) {
// consider zip file opened successfully
}
You may also use this function to get the error message by it's number:
function zipFileErrMsg($errno) {
// using constant name as a string to make this function PHP4 compatible
$zipFileFunctionsErrors = array(
'ZIPARCHIVE::ER_MULTIDISK' => 'Multi-disk zip archives not supported.',
'ZIPARCHIVE::ER_RENAME' => 'Renaming temporary file failed.',
'ZIPARCHIVE::ER_CLOSE' => 'Closing zip archive failed',
'ZIPARCHIVE::ER_SEEK' => 'Seek error',
'ZIPARCHIVE::ER_READ' => 'Read error',
'ZIPARCHIVE::ER_WRITE' => 'Write error',
'ZIPARCHIVE::ER_CRC' => 'CRC error',
'ZIPARCHIVE::ER_ZIPCLOSED' => 'Containing zip archive was closed',
'ZIPARCHIVE::ER_NOENT' => 'No such file.',
'ZIPARCHIVE::ER_EXISTS' => 'File already exists',
'ZIPARCHIVE::ER_OPEN' => 'Can\'t open file',
'ZIPARCHIVE::ER_TMPOPEN' => 'Failure to create temporary file.',
'ZIPARCHIVE::ER_ZLIB' => 'Zlib error',
'ZIPARCHIVE::ER_MEMORY' => 'Memory allocation failure',
'ZIPARCHIVE::ER_CHANGED' => 'Entry has been changed',
'ZIPARCHIVE::ER_COMPNOTSUPP' => 'Compression method not supported.',
'ZIPARCHIVE::ER_EOF' => 'Premature EOF',
'ZIPARCHIVE::ER_INVAL' => 'Invalid argument',
'ZIPARCHIVE::ER_NOZIP' => 'Not a zip archive',
'ZIPARCHIVE::ER_INTERNAL' => 'Internal error',
'ZIPARCHIVE::ER_INCONS' => 'Zip archive inconsistent',
'ZIPARCHIVE::ER_REMOVE' => 'Can\'t remove file',
'ZIPARCHIVE::ER_DELETED' => 'Entry has been deleted',
);
$errmsg = 'unknown';
foreach ($zipFileFunctionsErrors as $constName => $errorMessage) {
if (defined($constName) and constant($constName) === $errno) {
return 'Zip File Function error: '.$errorMessage;
}
}
return 'Zip File Function error: unknown';
}
$zip = zip_open($zip_file);
if (!is_resource($zip)) {
die(zipFileErrMsg($zip));
}
----
Server IP: 193.219.81.76
Probable Submitter: 213.164.105.187
----
Manual Page -- http://www.php.net/manual/en/function.zip-open.php
Edit -- https://master.php.net/note/edit/75840
Del: integrated -- https://master.php.net/note/delete/75840/integrated
Del: useless -- https://master.php.net/note/delete/75840/useless
Del: bad code -- https://master.php.net/note/delete/75840/bad+code
Del: spam -- https://master.php.net/note/delete/75840/spam
Del: non-english -- https://master.php.net/note/delete/75840/non-english
Del: in docs -- https://master.php.net/note/delete/75840/in+docs
Del: other reasons-- https://master.php.net/note/delete/75840
Reject -- https://master.php.net/note/reject/75840
Search -- https://master.php.net/manage/user-notes.php