bug #2363919 [display] Incorrect size for view
[phpmyadmin/crack.git] / libraries / zip_extension.lib.php
bloba079016ba9788dd199b412cc6ebd4b914919d881
1 <?php
2 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 /* $Id: $ */
5 // interface for the zip extension
7 /**
8 * Gets zip file contents
10 * @param string $file
11 * @return array ($error_message, $file_data); $error_message
12 * is empty if no error
13 * @author lem9
16 function PMA_getZipContents($file)
18 $error_message = '';
19 $file_data = '';
20 $zip_handle = zip_open($file);
21 if (is_resource($zip_handle)) {
22 $first_zip_entry = zip_read($zip_handle);
23 if (false === $first_zip_entry) {
24 $error_message = $GLOBALS['strNoFilesFoundInZip'];
25 } else {
26 zip_entry_open($zip_handle, $first_zip_entry, 'r');
27 $file_data = zip_entry_read($first_zip_entry, zip_entry_filesize($first_zip_entry));
28 zip_entry_close($first_zip_entry);
30 } else {
31 $error_message = $GLOBALS['strErrorInZipFile'] . ' ' . PMA_getZipError($zip_handle);
33 zip_close($zip_handle);
34 return (array('error' => $error_message, 'data' => $file_data));
38 /**
39 * Gets zip error message
41 * @param integer error code
42 * @return string error message
43 * @author lem9
45 function PMA_getZipError($code)
47 // I don't think this needs translation
48 switch ($code) {
49 case ZIPARCHIVE::ER_MULTIDISK:
50 $message = 'Multi-disk zip archives not supported';
51 break;
52 case ZIPARCHIVE::ER_READ:
53 $message = 'Read error';
54 break;
55 case ZIPARCHIVE::ER_CRC:
56 $message = 'CRC error';
57 break;
58 case ZIPARCHIVE::ER_NOZIP:
59 $message = 'Not a zip archive';
60 break;
61 case ZIPARCHIVE::ER_INCONS:
62 $message = 'Zip archive inconsistent';
63 break;
64 default:
65 $message = $code;
67 return $message;