@@ -27,63 +27,63 @@ discard block |
||
27 | 27 | |
28 | 28 | // require_once 'PEAR.php'; // GIJ |
29 | 29 | |
30 | - // ----- Constants |
|
31 | - define('ARCHIVE_ZIP_READ_BLOCK_SIZE', 2048); |
|
32 | - |
|
33 | - // ----- File list separator |
|
34 | - define('ARCHIVE_ZIP_SEPARATOR', ','); |
|
35 | - |
|
36 | - // ----- Optional static temporary directory |
|
37 | - // By default temporary files are generated in the script current |
|
38 | - // path. |
|
39 | - // If defined : |
|
40 | - // - MUST BE terminated by a '/'. |
|
41 | - // - MUST be a valid, already created directory |
|
42 | - // Samples : |
|
43 | - // define( 'ARCHIVE_ZIP_TEMPORARY_DIR', '/temp/' ); |
|
44 | - // define( 'ARCHIVE_ZIP_TEMPORARY_DIR', 'C:/Temp/' ); |
|
45 | - define('ARCHIVE_ZIP_TEMPORARY_DIR', ''); |
|
46 | - |
|
47 | - // ----- Error codes |
|
48 | - define('ARCHIVE_ZIP_ERR_NO_ERROR', 0); |
|
49 | - define('ARCHIVE_ZIP_ERR_WRITE_OPEN_FAIL', -1); |
|
50 | - define('ARCHIVE_ZIP_ERR_READ_OPEN_FAIL', -2); |
|
51 | - define('ARCHIVE_ZIP_ERR_INVALID_PARAMETER', -3); |
|
52 | - define('ARCHIVE_ZIP_ERR_MISSING_FILE', -4); |
|
53 | - define('ARCHIVE_ZIP_ERR_FILENAME_TOO_LONG', -5); |
|
54 | - define('ARCHIVE_ZIP_ERR_INVALID_ZIP', -6); |
|
55 | - define('ARCHIVE_ZIP_ERR_BAD_EXTRACTED_FILE', -7); |
|
56 | - define('ARCHIVE_ZIP_ERR_DIR_CREATE_FAIL', -8); |
|
57 | - define('ARCHIVE_ZIP_ERR_BAD_EXTENSION', -9); |
|
58 | - define('ARCHIVE_ZIP_ERR_BAD_FORMAT', -10); |
|
59 | - define('ARCHIVE_ZIP_ERR_DELETE_FILE_FAIL', -11); |
|
60 | - define('ARCHIVE_ZIP_ERR_RENAME_FILE_FAIL', -12); |
|
61 | - define('ARCHIVE_ZIP_ERR_BAD_CHECKSUM', -13); |
|
62 | - define('ARCHIVE_ZIP_ERR_INVALID_ARCHIVE_ZIP', -14); |
|
63 | - define('ARCHIVE_ZIP_ERR_MISSING_OPTION_VALUE', -15); |
|
64 | - define('ARCHIVE_ZIP_ERR_INVALID_PARAM_VALUE', -16); |
|
65 | - |
|
66 | - // ----- Warning codes |
|
67 | - define('ARCHIVE_ZIP_WARN_NO_WARNING', 0); |
|
68 | - define('ARCHIVE_ZIP_WARN_FILE_EXIST', 1); |
|
69 | - |
|
70 | - // ----- Methods parameters |
|
71 | - define('ARCHIVE_ZIP_PARAM_PATH', 'path'); |
|
72 | - define('ARCHIVE_ZIP_PARAM_ADD_PATH', 'add_path'); |
|
73 | - define('ARCHIVE_ZIP_PARAM_REMOVE_PATH', 'remove_path'); |
|
74 | - define('ARCHIVE_ZIP_PARAM_REMOVE_ALL_PATH', 'remove_all_path'); |
|
75 | - define('ARCHIVE_ZIP_PARAM_SET_CHMOD', 'set_chmod'); |
|
76 | - define('ARCHIVE_ZIP_PARAM_EXTRACT_AS_STRING', 'extract_as_string'); |
|
77 | - define('ARCHIVE_ZIP_PARAM_NO_COMPRESSION', 'no_compression'); |
|
78 | - define('ARCHIVE_ZIP_PARAM_BY_NAME', 'by_name'); |
|
79 | - define('ARCHIVE_ZIP_PARAM_BY_INDEX', 'by_index'); |
|
80 | - define('ARCHIVE_ZIP_PARAM_BY_EREG', 'by_ereg'); |
|
81 | - define('ARCHIVE_ZIP_PARAM_BY_PREG', 'by_preg'); |
|
82 | - |
|
83 | - define('ARCHIVE_ZIP_PARAM_PRE_EXTRACT', 'callback_pre_extract'); |
|
84 | - define('ARCHIVE_ZIP_PARAM_POST_EXTRACT', 'callback_post_extract'); |
|
85 | - define('ARCHIVE_ZIP_PARAM_PRE_ADD', 'callback_pre_add'); |
|
86 | - define('ARCHIVE_ZIP_PARAM_POST_ADD', 'callback_post_add'); |
|
30 | + // ----- Constants |
|
31 | + define('ARCHIVE_ZIP_READ_BLOCK_SIZE', 2048); |
|
32 | + |
|
33 | + // ----- File list separator |
|
34 | + define('ARCHIVE_ZIP_SEPARATOR', ','); |
|
35 | + |
|
36 | + // ----- Optional static temporary directory |
|
37 | + // By default temporary files are generated in the script current |
|
38 | + // path. |
|
39 | + // If defined : |
|
40 | + // - MUST BE terminated by a '/'. |
|
41 | + // - MUST be a valid, already created directory |
|
42 | + // Samples : |
|
43 | + // define( 'ARCHIVE_ZIP_TEMPORARY_DIR', '/temp/' ); |
|
44 | + // define( 'ARCHIVE_ZIP_TEMPORARY_DIR', 'C:/Temp/' ); |
|
45 | + define('ARCHIVE_ZIP_TEMPORARY_DIR', ''); |
|
46 | + |
|
47 | + // ----- Error codes |
|
48 | + define('ARCHIVE_ZIP_ERR_NO_ERROR', 0); |
|
49 | + define('ARCHIVE_ZIP_ERR_WRITE_OPEN_FAIL', -1); |
|
50 | + define('ARCHIVE_ZIP_ERR_READ_OPEN_FAIL', -2); |
|
51 | + define('ARCHIVE_ZIP_ERR_INVALID_PARAMETER', -3); |
|
52 | + define('ARCHIVE_ZIP_ERR_MISSING_FILE', -4); |
|
53 | + define('ARCHIVE_ZIP_ERR_FILENAME_TOO_LONG', -5); |
|
54 | + define('ARCHIVE_ZIP_ERR_INVALID_ZIP', -6); |
|
55 | + define('ARCHIVE_ZIP_ERR_BAD_EXTRACTED_FILE', -7); |
|
56 | + define('ARCHIVE_ZIP_ERR_DIR_CREATE_FAIL', -8); |
|
57 | + define('ARCHIVE_ZIP_ERR_BAD_EXTENSION', -9); |
|
58 | + define('ARCHIVE_ZIP_ERR_BAD_FORMAT', -10); |
|
59 | + define('ARCHIVE_ZIP_ERR_DELETE_FILE_FAIL', -11); |
|
60 | + define('ARCHIVE_ZIP_ERR_RENAME_FILE_FAIL', -12); |
|
61 | + define('ARCHIVE_ZIP_ERR_BAD_CHECKSUM', -13); |
|
62 | + define('ARCHIVE_ZIP_ERR_INVALID_ARCHIVE_ZIP', -14); |
|
63 | + define('ARCHIVE_ZIP_ERR_MISSING_OPTION_VALUE', -15); |
|
64 | + define('ARCHIVE_ZIP_ERR_INVALID_PARAM_VALUE', -16); |
|
65 | + |
|
66 | + // ----- Warning codes |
|
67 | + define('ARCHIVE_ZIP_WARN_NO_WARNING', 0); |
|
68 | + define('ARCHIVE_ZIP_WARN_FILE_EXIST', 1); |
|
69 | + |
|
70 | + // ----- Methods parameters |
|
71 | + define('ARCHIVE_ZIP_PARAM_PATH', 'path'); |
|
72 | + define('ARCHIVE_ZIP_PARAM_ADD_PATH', 'add_path'); |
|
73 | + define('ARCHIVE_ZIP_PARAM_REMOVE_PATH', 'remove_path'); |
|
74 | + define('ARCHIVE_ZIP_PARAM_REMOVE_ALL_PATH', 'remove_all_path'); |
|
75 | + define('ARCHIVE_ZIP_PARAM_SET_CHMOD', 'set_chmod'); |
|
76 | + define('ARCHIVE_ZIP_PARAM_EXTRACT_AS_STRING', 'extract_as_string'); |
|
77 | + define('ARCHIVE_ZIP_PARAM_NO_COMPRESSION', 'no_compression'); |
|
78 | + define('ARCHIVE_ZIP_PARAM_BY_NAME', 'by_name'); |
|
79 | + define('ARCHIVE_ZIP_PARAM_BY_INDEX', 'by_index'); |
|
80 | + define('ARCHIVE_ZIP_PARAM_BY_EREG', 'by_ereg'); |
|
81 | + define('ARCHIVE_ZIP_PARAM_BY_PREG', 'by_preg'); |
|
82 | + |
|
83 | + define('ARCHIVE_ZIP_PARAM_PRE_EXTRACT', 'callback_pre_extract'); |
|
84 | + define('ARCHIVE_ZIP_PARAM_POST_EXTRACT', 'callback_post_extract'); |
|
85 | + define('ARCHIVE_ZIP_PARAM_PRE_ADD', 'callback_pre_add'); |
|
86 | + define('ARCHIVE_ZIP_PARAM_POST_ADD', 'callback_post_add'); |
|
87 | 87 | |
88 | 88 | |
89 | 89 | |
@@ -102,55 +102,55 @@ discard block |
||
102 | 102 | class Archive_Zip |
103 | 103 | { |
104 | 104 | /** |
105 | - * The filename of the zip archive. |
|
106 | - * |
|
107 | - * @var string Name of the Zip file |
|
108 | - */ |
|
105 | + * The filename of the zip archive. |
|
106 | + * |
|
107 | + * @var string Name of the Zip file |
|
108 | + */ |
|
109 | 109 | public $_zipname=''; |
110 | 110 | |
111 | 111 | /** |
112 | - * File descriptor of the opened Zip file. |
|
113 | - * |
|
114 | - * @var int Internal zip file descriptor |
|
115 | - */ |
|
112 | + * File descriptor of the opened Zip file. |
|
113 | + * |
|
114 | + * @var int Internal zip file descriptor |
|
115 | + */ |
|
116 | 116 | public $_zip_fd=0; |
117 | 117 | |
118 | 118 | /** |
119 | - * @var int last error code |
|
120 | - */ |
|
119 | + * @var int last error code |
|
120 | + */ |
|
121 | 121 | public $_error_code=1; |
122 | 122 | |
123 | 123 | /** |
124 | - * @var string Last error description |
|
125 | - */ |
|
124 | + * @var string Last error description |
|
125 | + */ |
|
126 | 126 | public $_error_string=''; |
127 | 127 | |
128 | 128 | // {{{ constructor |
129 | 129 | /** |
130 | - * Archive_Zip Class constructor. This flavour of the constructor only |
|
131 | - * declare a new Archive_Zip object, identifying it by the name of the |
|
132 | - * zip file. |
|
133 | - * |
|
134 | - * @param string $p_zipname The name of the zip archive to create |
|
135 | - * @access public |
|
136 | - */ |
|
130 | + * Archive_Zip Class constructor. This flavour of the constructor only |
|
131 | + * declare a new Archive_Zip object, identifying it by the name of the |
|
132 | + * zip file. |
|
133 | + * |
|
134 | + * @param string $p_zipname The name of the zip archive to create |
|
135 | + * @access public |
|
136 | + */ |
|
137 | 137 | //HACK by domifara |
138 | 138 | // function Archive_Zip($p_zipname) |
139 | 139 | public function __construct($p_zipname) |
140 | 140 | { |
141 | 141 | |
142 | - // ----- Check the zlib |
|
142 | + // ----- Check the zlib |
|
143 | 143 | /* if (!extension_loaded('zlib')) { |
144 | 144 | PEAR::loadExtension('zlib'); |
145 | 145 | }*/ // GIJ |
146 | - if (!extension_loaded('zlib')) { |
|
147 | - die("The extension 'zlib' couldn't be found.\n". 'Please make sure your version of PHP was built ' . |
|
148 | - "with 'zlib' support.\n"); |
|
149 | - return false; |
|
150 | - } |
|
151 | - |
|
152 | - // ----- Set the attributes |
|
153 | - $this->_zipname = $p_zipname; |
|
146 | + if (!extension_loaded('zlib')) { |
|
147 | + die("The extension 'zlib' couldn't be found.\n". 'Please make sure your version of PHP was built ' . |
|
148 | + "with 'zlib' support.\n"); |
|
149 | + return false; |
|
150 | + } |
|
151 | + |
|
152 | + // ----- Set the attributes |
|
153 | + $this->_zipname = $p_zipname; |
|
154 | 154 | $this->_zip_fd = 0; |
155 | 155 | |
156 | 156 | return; |
@@ -159,27 +159,27 @@ discard block |
||
159 | 159 | |
160 | 160 | // {{{ create() |
161 | 161 | /** |
162 | - * This method creates a Zip Archive with the filename set with |
|
163 | - * the constructor. |
|
164 | - * The files and directories indicated in $p_filelist |
|
165 | - * are added in the archive. |
|
166 | - * When a directory is in the list, the directory and its content is added |
|
167 | - * in the archive. |
|
168 | - * The methods takes a variable list of parameters in $p_params. |
|
169 | - * The supported parameters for this method are : |
|
170 | - * 'add_path' : Add a path to the archived files. |
|
171 | - * 'remove_path' : Remove the specified 'root' path of the archived files. |
|
172 | - * 'remove_all_path' : Remove all the path of the archived files. |
|
173 | - * 'no_compression' : The archived files will not be compressed. |
|
174 | - * |
|
175 | - * @access public |
|
176 | - * @param mixed $p_filelist The list of the files or folders to add. |
|
177 | - * It can be a string with filenames separated |
|
178 | - * by a comma, or an array of filenames. |
|
179 | - * @param mixed $p_params An array of variable parameters and values. |
|
180 | - * @return mixed An array of file description on success, |
|
181 | - * an error code on error |
|
182 | - */ |
|
162 | + * This method creates a Zip Archive with the filename set with |
|
163 | + * the constructor. |
|
164 | + * The files and directories indicated in $p_filelist |
|
165 | + * are added in the archive. |
|
166 | + * When a directory is in the list, the directory and its content is added |
|
167 | + * in the archive. |
|
168 | + * The methods takes a variable list of parameters in $p_params. |
|
169 | + * The supported parameters for this method are : |
|
170 | + * 'add_path' : Add a path to the archived files. |
|
171 | + * 'remove_path' : Remove the specified 'root' path of the archived files. |
|
172 | + * 'remove_all_path' : Remove all the path of the archived files. |
|
173 | + * 'no_compression' : The archived files will not be compressed. |
|
174 | + * |
|
175 | + * @access public |
|
176 | + * @param mixed $p_filelist The list of the files or folders to add. |
|
177 | + * It can be a string with filenames separated |
|
178 | + * by a comma, or an array of filenames. |
|
179 | + * @param mixed $p_params An array of variable parameters and values. |
|
180 | + * @return mixed An array of file description on success, |
|
181 | + * an error code on error |
|
182 | + */ |
|
183 | 183 | public function create($p_filelist, $p_params=0) |
184 | 184 | { |
185 | 185 | $this->_errorReset(); |
@@ -189,10 +189,10 @@ discard block |
||
189 | 189 | $p_params = array(); |
190 | 190 | } |
191 | 191 | if ($this->_check_parameters($p_params, |
192 | - array('no_compression' => false, |
|
193 | - 'add_path' => '', |
|
194 | - 'remove_path' => '', |
|
195 | - 'remove_all_path' => false)) != 1) { |
|
192 | + array('no_compression' => false, |
|
193 | + 'add_path' => '', |
|
194 | + 'remove_path' => '', |
|
195 | + 'remove_all_path' => false)) != 1) { |
|
196 | 196 | return 0; |
197 | 197 | } |
198 | 198 | |
@@ -213,7 +213,7 @@ discard block |
||
213 | 213 | // ----- Invalid variable |
214 | 214 | else { |
215 | 215 | $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_PARAMETER, |
216 | - 'Invalid variable type p_filelist'); |
|
216 | + 'Invalid variable type p_filelist'); |
|
217 | 217 | $v_result = ARCHIVE_ZIP_ERR_INVALID_PARAMETER; |
218 | 218 | } |
219 | 219 | |
@@ -227,30 +227,30 @@ discard block |
||
227 | 227 | |
228 | 228 | // {{{ add() |
229 | 229 | /** |
230 | - * This method add files or directory in an existing Zip Archive. |
|
231 | - * If the Zip Archive does not exist it is created. |
|
232 | - * The files and directories to add are indicated in $p_filelist. |
|
233 | - * When a directory is in the list, the directory and its content is added |
|
234 | - * in the archive. |
|
235 | - * The methods takes a variable list of parameters in $p_params. |
|
236 | - * The supported parameters for this method are : |
|
237 | - * 'add_path' : Add a path to the archived files. |
|
238 | - * 'remove_path' : Remove the specified 'root' path of the archived files. |
|
239 | - * 'remove_all_path' : Remove all the path of the archived files. |
|
240 | - * 'no_compression' : The archived files will not be compressed. |
|
241 | - * 'callback_pre_add' : A callback function that will be called before |
|
242 | - * each entry archiving. |
|
243 | - * 'callback_post_add' : A callback function that will be called after |
|
244 | - * each entry archiving. |
|
245 | - * |
|
246 | - * @access public |
|
247 | - * @param mixed $p_filelist The list of the files or folders to add. |
|
248 | - * It can be a string with filenames separated |
|
249 | - * by a comma, or an array of filenames. |
|
250 | - * @param mixed $p_params An array of variable parameters and values. |
|
251 | - * @return mixed An array of file description on success, |
|
252 | - * 0 on an unrecoverable failure, an error code is logged. |
|
253 | - */ |
|
230 | + * This method add files or directory in an existing Zip Archive. |
|
231 | + * If the Zip Archive does not exist it is created. |
|
232 | + * The files and directories to add are indicated in $p_filelist. |
|
233 | + * When a directory is in the list, the directory and its content is added |
|
234 | + * in the archive. |
|
235 | + * The methods takes a variable list of parameters in $p_params. |
|
236 | + * The supported parameters for this method are : |
|
237 | + * 'add_path' : Add a path to the archived files. |
|
238 | + * 'remove_path' : Remove the specified 'root' path of the archived files. |
|
239 | + * 'remove_all_path' : Remove all the path of the archived files. |
|
240 | + * 'no_compression' : The archived files will not be compressed. |
|
241 | + * 'callback_pre_add' : A callback function that will be called before |
|
242 | + * each entry archiving. |
|
243 | + * 'callback_post_add' : A callback function that will be called after |
|
244 | + * each entry archiving. |
|
245 | + * |
|
246 | + * @access public |
|
247 | + * @param mixed $p_filelist The list of the files or folders to add. |
|
248 | + * It can be a string with filenames separated |
|
249 | + * by a comma, or an array of filenames. |
|
250 | + * @param mixed $p_params An array of variable parameters and values. |
|
251 | + * @return mixed An array of file description on success, |
|
252 | + * 0 on an unrecoverable failure, an error code is logged. |
|
253 | + */ |
|
254 | 254 | public function add($p_filelist, $p_params=0) |
255 | 255 | { |
256 | 256 | $this->_errorReset(); |
@@ -260,11 +260,11 @@ discard block |
||
260 | 260 | $p_params = array(); |
261 | 261 | } |
262 | 262 | if ($this->_check_parameters($p_params, |
263 | - array('no_compression' => false, |
|
263 | + array('no_compression' => false, |
|
264 | 264 | 'add_path' => '', |
265 | 265 | 'remove_path' => '', |
266 | 266 | 'remove_all_path' => false, |
267 | - 'callback_pre_add' => '', |
|
267 | + 'callback_pre_add' => '', |
|
268 | 268 | 'callback_post_add' => '')) != 1) { |
269 | 269 | return 0; |
270 | 270 | } |
@@ -302,48 +302,48 @@ discard block |
||
302 | 302 | |
303 | 303 | // {{{ listContent() |
304 | 304 | /** |
305 | - * This method gives the names and properties of the files and directories |
|
306 | - * which are present in the zip archive. |
|
307 | - * The properties of each entries in the list are : |
|
308 | - * filename : Name of the file. |
|
309 | - * For create() or add() it's the filename given by the user. |
|
310 | - * For an extract() it's the filename of the extracted file. |
|
311 | - * stored_filename : Name of the file / directory stored in the archive. |
|
312 | - * size : Size of the stored file. |
|
313 | - * compressed_size : Size of the file's data compressed in the archive |
|
314 | - * (without the zip headers overhead) |
|
315 | - * mtime : Last known modification date of the file (UNIX timestamp) |
|
316 | - * comment : Comment associated with the file |
|
317 | - * folder : true | false (indicates if the entry is a folder) |
|
318 | - * index : index of the file in the archive (-1 when not available) |
|
319 | - * status : status of the action on the entry (depending of the action) : |
|
320 | - * Values are : |
|
321 | - * ok : OK ! |
|
322 | - * filtered : the file/dir was not extracted (filtered by user) |
|
323 | - * already_a_directory : the file can't be extracted because a |
|
324 | - * directory with the same name already |
|
325 | - * exists |
|
326 | - * write_protected : the file can't be extracted because a file |
|
327 | - * with the same name already exists and is |
|
328 | - * write protected |
|
329 | - * newer_exist : the file was not extracted because a newer |
|
330 | - * file already exists |
|
331 | - * path_creation_fail : the file is not extracted because the |
|
332 | - * folder does not exists and can't be |
|
333 | - * created |
|
334 | - * write_error : the file was not extracted because there was a |
|
335 | - * error while writing the file |
|
336 | - * read_error : the file was not extracted because there was a |
|
337 | - * error while reading the file |
|
338 | - * invalid_header : the file was not extracted because of an |
|
339 | - * archive format error (bad file header) |
|
340 | - * Note that each time a method can continue operating when there |
|
341 | - * is an error on a single file, the error is only logged in the file status. |
|
342 | - * |
|
343 | - * @access public |
|
344 | - * @return mixed An array of file description on success, |
|
345 | - * 0 on an unrecoverable failure, an error code is logged. |
|
346 | - */ |
|
305 | + * This method gives the names and properties of the files and directories |
|
306 | + * which are present in the zip archive. |
|
307 | + * The properties of each entries in the list are : |
|
308 | + * filename : Name of the file. |
|
309 | + * For create() or add() it's the filename given by the user. |
|
310 | + * For an extract() it's the filename of the extracted file. |
|
311 | + * stored_filename : Name of the file / directory stored in the archive. |
|
312 | + * size : Size of the stored file. |
|
313 | + * compressed_size : Size of the file's data compressed in the archive |
|
314 | + * (without the zip headers overhead) |
|
315 | + * mtime : Last known modification date of the file (UNIX timestamp) |
|
316 | + * comment : Comment associated with the file |
|
317 | + * folder : true | false (indicates if the entry is a folder) |
|
318 | + * index : index of the file in the archive (-1 when not available) |
|
319 | + * status : status of the action on the entry (depending of the action) : |
|
320 | + * Values are : |
|
321 | + * ok : OK ! |
|
322 | + * filtered : the file/dir was not extracted (filtered by user) |
|
323 | + * already_a_directory : the file can't be extracted because a |
|
324 | + * directory with the same name already |
|
325 | + * exists |
|
326 | + * write_protected : the file can't be extracted because a file |
|
327 | + * with the same name already exists and is |
|
328 | + * write protected |
|
329 | + * newer_exist : the file was not extracted because a newer |
|
330 | + * file already exists |
|
331 | + * path_creation_fail : the file is not extracted because the |
|
332 | + * folder does not exists and can't be |
|
333 | + * created |
|
334 | + * write_error : the file was not extracted because there was a |
|
335 | + * error while writing the file |
|
336 | + * read_error : the file was not extracted because there was a |
|
337 | + * error while reading the file |
|
338 | + * invalid_header : the file was not extracted because of an |
|
339 | + * archive format error (bad file header) |
|
340 | + * Note that each time a method can continue operating when there |
|
341 | + * is an error on a single file, the error is only logged in the file status. |
|
342 | + * |
|
343 | + * @access public |
|
344 | + * @return mixed An array of file description on success, |
|
345 | + * 0 on an unrecoverable failure, an error code is logged. |
|
346 | + */ |
|
347 | 347 | public function listContent() |
348 | 348 | { |
349 | 349 | $this->_errorReset(); |
@@ -365,42 +365,42 @@ discard block |
||
365 | 365 | |
366 | 366 | // {{{ extract() |
367 | 367 | /** |
368 | - * This method extract the files and folders which are in the zip archive. |
|
369 | - * It can extract all the archive or a part of the archive by using filter |
|
370 | - * feature (extract by name, by index, by ereg, by preg). The extraction |
|
371 | - * can occur in the current path or an other path. |
|
372 | - * All the advanced features are activated by the use of variable |
|
373 | - * parameters. |
|
374 | - * The return value is an array of entry descriptions which gives |
|
375 | - * information on extracted files (See listContent()). |
|
376 | - * The method may return a success value (an array) even if some files |
|
377 | - * are not correctly extracted (see the file status in listContent()). |
|
378 | - * The supported variable parameters for this method are : |
|
379 | - * 'add_path' : Path where the files and directories are to be extracted |
|
380 | - * 'remove_path' : First part ('root' part) of the memorized path |
|
381 | - * (if similar) to remove while extracting. |
|
382 | - * 'remove_all_path' : Remove all the memorized path while extracting. |
|
383 | - * 'extract_as_string' : |
|
384 | - * 'set_chmod' : After the extraction of the file the indicated mode |
|
385 | - * will be set. |
|
386 | - * 'by_name' : It can be a string with file/dir names separated by ',', |
|
387 | - * or an array of file/dir names to extract from the archive. |
|
388 | - * 'by_index' : A string with range of indexes separated by ',', |
|
389 | - * (sample "1,3-5,12"). |
|
390 | - * 'by_ereg' : A regular expression (ereg) that must match the extracted |
|
391 | - * filename. |
|
392 | - * 'by_preg' : A regular expression (preg) that must match the extracted |
|
393 | - * filename. |
|
394 | - * 'callback_pre_extract' : A callback function that will be called before |
|
395 | - * each entry extraction. |
|
396 | - * 'callback_post_extract' : A callback function that will be called after |
|
397 | - * each entry extraction. |
|
398 | - * |
|
399 | - * @access public |
|
400 | - * @param mixed $p_params An array of variable parameters and values. |
|
401 | - * @return mixed An array of file description on success, |
|
402 | - * 0 on an unrecoverable failure, an error code is logged. |
|
403 | - */ |
|
368 | + * This method extract the files and folders which are in the zip archive. |
|
369 | + * It can extract all the archive or a part of the archive by using filter |
|
370 | + * feature (extract by name, by index, by ereg, by preg). The extraction |
|
371 | + * can occur in the current path or an other path. |
|
372 | + * All the advanced features are activated by the use of variable |
|
373 | + * parameters. |
|
374 | + * The return value is an array of entry descriptions which gives |
|
375 | + * information on extracted files (See listContent()). |
|
376 | + * The method may return a success value (an array) even if some files |
|
377 | + * are not correctly extracted (see the file status in listContent()). |
|
378 | + * The supported variable parameters for this method are : |
|
379 | + * 'add_path' : Path where the files and directories are to be extracted |
|
380 | + * 'remove_path' : First part ('root' part) of the memorized path |
|
381 | + * (if similar) to remove while extracting. |
|
382 | + * 'remove_all_path' : Remove all the memorized path while extracting. |
|
383 | + * 'extract_as_string' : |
|
384 | + * 'set_chmod' : After the extraction of the file the indicated mode |
|
385 | + * will be set. |
|
386 | + * 'by_name' : It can be a string with file/dir names separated by ',', |
|
387 | + * or an array of file/dir names to extract from the archive. |
|
388 | + * 'by_index' : A string with range of indexes separated by ',', |
|
389 | + * (sample "1,3-5,12"). |
|
390 | + * 'by_ereg' : A regular expression (ereg) that must match the extracted |
|
391 | + * filename. |
|
392 | + * 'by_preg' : A regular expression (preg) that must match the extracted |
|
393 | + * filename. |
|
394 | + * 'callback_pre_extract' : A callback function that will be called before |
|
395 | + * each entry extraction. |
|
396 | + * 'callback_post_extract' : A callback function that will be called after |
|
397 | + * each entry extraction. |
|
398 | + * |
|
399 | + * @access public |
|
400 | + * @param mixed $p_params An array of variable parameters and values. |
|
401 | + * @return mixed An array of file description on success, |
|
402 | + * 0 on an unrecoverable failure, an error code is logged. |
|
403 | + */ |
|
404 | 404 | public function extract($p_params=0) |
405 | 405 | { |
406 | 406 | $this->_errorReset(); |
@@ -415,11 +415,11 @@ discard block |
||
415 | 415 | $p_params = array(); |
416 | 416 | } |
417 | 417 | if ($this->_check_parameters($p_params, |
418 | - array('extract_as_string' => false, |
|
418 | + array('extract_as_string' => false, |
|
419 | 419 | 'add_path' => '', |
420 | 420 | 'remove_path' => '', |
421 | 421 | 'remove_all_path' => false, |
422 | - 'callback_pre_extract' => '', |
|
422 | + 'callback_pre_extract' => '', |
|
423 | 423 | 'callback_post_extract' => '', |
424 | 424 | 'set_chmod' => 0, |
425 | 425 | 'by_name' => '', |
@@ -443,26 +443,26 @@ discard block |
||
443 | 443 | |
444 | 444 | // {{{ delete() |
445 | 445 | /** |
446 | - * This methods delete archive entries in the zip archive. |
|
447 | - * Notice that at least one filtering rule (set by the variable parameter |
|
448 | - * list) must be set. |
|
449 | - * Also notice that if you delete a folder entry, only the folder entry |
|
450 | - * is deleted, not all the files bellonging to this folder. |
|
451 | - * The supported variable parameters for this method are : |
|
452 | - * 'by_name' : It can be a string with file/dir names separated by ',', |
|
453 | - * or an array of file/dir names to delete from the archive. |
|
454 | - * 'by_index' : A string with range of indexes separated by ',', |
|
455 | - * (sample "1,3-5,12"). |
|
456 | - * 'by_ereg' : A regular expression (ereg) that must match the extracted |
|
457 | - * filename. |
|
458 | - * 'by_preg' : A regular expression (preg) that must match the extracted |
|
459 | - * filename. |
|
460 | - * |
|
461 | - * @access public |
|
462 | - * @param mixed $p_params An array of variable parameters and values. |
|
463 | - * @return mixed An array of file description on success, |
|
464 | - * 0 on an unrecoverable failure, an error code is logged. |
|
465 | - */ |
|
446 | + * This methods delete archive entries in the zip archive. |
|
447 | + * Notice that at least one filtering rule (set by the variable parameter |
|
448 | + * list) must be set. |
|
449 | + * Also notice that if you delete a folder entry, only the folder entry |
|
450 | + * is deleted, not all the files bellonging to this folder. |
|
451 | + * The supported variable parameters for this method are : |
|
452 | + * 'by_name' : It can be a string with file/dir names separated by ',', |
|
453 | + * or an array of file/dir names to delete from the archive. |
|
454 | + * 'by_index' : A string with range of indexes separated by ',', |
|
455 | + * (sample "1,3-5,12"). |
|
456 | + * 'by_ereg' : A regular expression (ereg) that must match the extracted |
|
457 | + * filename. |
|
458 | + * 'by_preg' : A regular expression (preg) that must match the extracted |
|
459 | + * filename. |
|
460 | + * |
|
461 | + * @access public |
|
462 | + * @param mixed $p_params An array of variable parameters and values. |
|
463 | + * @return mixed An array of file description on success, |
|
464 | + * 0 on an unrecoverable failure, an error code is logged. |
|
465 | + */ |
|
466 | 466 | public function delete($p_params) |
467 | 467 | { |
468 | 468 | $this->_errorReset(); |
@@ -474,7 +474,7 @@ discard block |
||
474 | 474 | |
475 | 475 | // ----- Set default values |
476 | 476 | if ($this->_check_parameters($p_params, |
477 | - array('by_name' => '', |
|
477 | + array('by_name' => '', |
|
478 | 478 | 'by_index' => '', |
479 | 479 | 'by_ereg' => '', |
480 | 480 | 'by_preg' => '')) != 1) { |
@@ -487,8 +487,8 @@ discard block |
||
487 | 487 | && ($p_params['by_ereg'] == '') |
488 | 488 | && ($p_params['by_preg'] == '')) { |
489 | 489 | $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_PARAMETER, |
490 | - 'At least one filtering rule must' |
|
491 | - .' be set as parameter'); |
|
490 | + 'At least one filtering rule must' |
|
491 | + .' be set as parameter'); |
|
492 | 492 | return 0; |
493 | 493 | } |
494 | 494 | |
@@ -505,16 +505,16 @@ discard block |
||
505 | 505 | |
506 | 506 | // {{{ properties() |
507 | 507 | /** |
508 | - * This method gives the global properties of the archive. |
|
509 | - * The properties are : |
|
510 | - * nb : Number of files in the archive |
|
511 | - * comment : Comment associated with the archive file |
|
512 | - * status : not_exist, ok |
|
513 | - * |
|
514 | - * @access public |
|
515 | - * @param mixed $p_params {Description} |
|
516 | - * @return mixed An array with the global properties or 0 on error. |
|
517 | - */ |
|
508 | + * This method gives the global properties of the archive. |
|
509 | + * The properties are : |
|
510 | + * nb : Number of files in the archive |
|
511 | + * comment : Comment associated with the archive file |
|
512 | + * status : not_exist, ok |
|
513 | + * |
|
514 | + * @access public |
|
515 | + * @param mixed $p_params {Description} |
|
516 | + * @return mixed An array with the global properties or 0 on error. |
|
517 | + */ |
|
518 | 518 | public function properties() |
519 | 519 | { |
520 | 520 | $this->_errorReset(); |
@@ -535,8 +535,8 @@ discard block |
||
535 | 535 | // ----- Open the zip file |
536 | 536 | if (($this->_zip_fd = @fopen($this->_zipname, 'rb')) == 0) { |
537 | 537 | $this->_errorLog(ARCHIVE_ZIP_ERR_READ_OPEN_FAIL, |
538 | - 'Unable to open archive \''.$this->_zipname |
|
539 | - .'\' in binary read mode'); |
|
538 | + 'Unable to open archive \''.$this->_zipname |
|
539 | + .'\' in binary read mode'); |
|
540 | 540 | return 0; |
541 | 541 | } |
542 | 542 | |
@@ -561,15 +561,15 @@ discard block |
||
561 | 561 | |
562 | 562 | // {{{ duplicate() |
563 | 563 | /** |
564 | - * This method creates an archive by copying the content of an other one. |
|
565 | - * If the archive already exist, it is replaced by the new one without |
|
566 | - * any warning. |
|
567 | - * |
|
568 | - * @access public |
|
569 | - * @param mixed $p_archive It can be a valid Archive_Zip object or |
|
570 | - * the filename of a valid zip archive. |
|
571 | - * @return integer 1 on success, 0 on failure. |
|
572 | - */ |
|
564 | + * This method creates an archive by copying the content of an other one. |
|
565 | + * If the archive already exist, it is replaced by the new one without |
|
566 | + * any warning. |
|
567 | + * |
|
568 | + * @access public |
|
569 | + * @param mixed $p_archive It can be a valid Archive_Zip object or |
|
570 | + * the filename of a valid zip archive. |
|
571 | + * @return integer 1 on success, 0 on failure. |
|
572 | + */ |
|
573 | 573 | public function duplicate($p_archive) |
574 | 574 | { |
575 | 575 | $this->_errorReset(); |
@@ -586,7 +586,7 @@ discard block |
||
586 | 586 | // TBC : Should also check the archive format |
587 | 587 | if (!is_file($p_archive)) { |
588 | 588 | $this->_errorLog(ARCHIVE_ZIP_ERR_MISSING_FILE, |
589 | - "No file with filename '".$p_archive."'"); |
|
589 | + "No file with filename '".$p_archive."'"); |
|
590 | 590 | $v_result = ARCHIVE_ZIP_ERR_MISSING_FILE; |
591 | 591 | } else { |
592 | 592 | $v_result = $this->_duplicate($p_archive); |
@@ -605,16 +605,16 @@ discard block |
||
605 | 605 | |
606 | 606 | // {{{ merge() |
607 | 607 | /** |
608 | - * This method merge a valid zip archive at the end of the |
|
609 | - * archive identified by the Archive_Zip object. |
|
610 | - * If the archive ($this) does not exist, the merge becomes a duplicate. |
|
611 | - * If the archive to add does not exist, the merge is a success. |
|
612 | - * |
|
613 | - * @access public |
|
614 | - * @param mixed $p_archive_to_add It can be a valid Archive_Zip object or |
|
615 | - * the filename of a valid zip archive. |
|
616 | - * @return integer 1 on success, 0 on failure. |
|
617 | - */ |
|
608 | + * This method merge a valid zip archive at the end of the |
|
609 | + * archive identified by the Archive_Zip object. |
|
610 | + * If the archive ($this) does not exist, the merge becomes a duplicate. |
|
611 | + * If the archive to add does not exist, the merge is a success. |
|
612 | + * |
|
613 | + * @access public |
|
614 | + * @param mixed $p_archive_to_add It can be a valid Archive_Zip object or |
|
615 | + * the filename of a valid zip archive. |
|
616 | + * @return integer 1 on success, 0 on failure. |
|
617 | + */ |
|
618 | 618 | public function merge($p_archive_to_add) |
619 | 619 | { |
620 | 620 | $v_result = 1; |
@@ -652,11 +652,11 @@ discard block |
||
652 | 652 | |
653 | 653 | // {{{ errorCode() |
654 | 654 | /** |
655 | - * Method that gives the lastest error code. |
|
656 | - * |
|
657 | - * @access public |
|
658 | - * @return integer The error code value. |
|
659 | - */ |
|
655 | + * Method that gives the lastest error code. |
|
656 | + * |
|
657 | + * @access public |
|
658 | + * @return integer The error code value. |
|
659 | + */ |
|
660 | 660 | public function errorCode() |
661 | 661 | { |
662 | 662 | return $this->_error_code; |
@@ -665,19 +665,19 @@ discard block |
||
665 | 665 | |
666 | 666 | // {{{ errorName() |
667 | 667 | /** |
668 | - * This method gives the latest error code name. |
|
669 | - * |
|
670 | - * @access public |
|
671 | - * @param boolean $p_with_code If true, gives the name and the int value. |
|
672 | - * @return string The error name. |
|
673 | - */ |
|
668 | + * This method gives the latest error code name. |
|
669 | + * |
|
670 | + * @access public |
|
671 | + * @param boolean $p_with_code If true, gives the name and the int value. |
|
672 | + * @return string The error name. |
|
673 | + */ |
|
674 | 674 | public function errorName($p_with_code=false) |
675 | 675 | { |
676 | 676 | $v_const_list = get_defined_constants(); |
677 | 677 | |
678 | - // ----- Extract error constants from all const. |
|
678 | + // ----- Extract error constants from all const. |
|
679 | 679 | for (reset($v_const_list); |
680 | - list($v_key, $v_value) = each($v_const_list);) { |
|
680 | + list($v_key, $v_value) = each($v_const_list);) { |
|
681 | 681 | if (substr($v_key, 0, strlen('ARCHIVE_ZIP_ERR_')) |
682 | 682 | =='ARCHIVE_ZIP_ERR_') { |
683 | 683 | $v_error_list[$v_key] = $v_value; |
@@ -702,15 +702,15 @@ discard block |
||
702 | 702 | |
703 | 703 | // {{{ errorInfo() |
704 | 704 | /** |
705 | - * This method returns the description associated with the latest error. |
|
706 | - * |
|
707 | - * @access public |
|
708 | - * @param boolean $p_full If set to true gives the description with the |
|
709 | - * error code, the name and the description. |
|
710 | - * If set to false gives only the description |
|
711 | - * and the error code. |
|
712 | - * @return string The error description. |
|
713 | - */ |
|
705 | + * This method returns the description associated with the latest error. |
|
706 | + * |
|
707 | + * @access public |
|
708 | + * @param boolean $p_full If set to true gives the description with the |
|
709 | + * error code, the name and the description. |
|
710 | + * If set to false gives only the description |
|
711 | + * and the error code. |
|
712 | + * @return string The error description. |
|
713 | + */ |
|
714 | 714 | public function errorInfo($p_full=false) |
715 | 715 | { |
716 | 716 | if ($p_full) { |
@@ -728,30 +728,30 @@ discard block |
||
728 | 728 | // ***** THESES FUNCTIONS MUST NOT BE USED DIRECTLY ***** |
729 | 729 | // ----------------------------------------------------------------------------- |
730 | 730 | |
731 | - // --------------------------------------------------------------------------- |
|
732 | - // Function : _checkFormat() |
|
733 | - // Description : |
|
734 | - // This method check that the archive exists and is a valid zip archive. |
|
735 | - // Several level of check exists. (futur) |
|
736 | - // Parameters : |
|
737 | - // $p_level : Level of check. Default 0. |
|
738 | - // 0 : Check the first bytes (magic codes) (default value)) |
|
739 | - // 1 : 0 + Check the central directory (futur) |
|
740 | - // 2 : 1 + Check each file header (futur) |
|
741 | - // Return Values : |
|
742 | - // true on success, |
|
743 | - // false on error, the error code is set. |
|
744 | - // --------------------------------------------------------------------------- |
|
745 | - /** |
|
746 | - * Archive_Zip::_checkFormat() |
|
747 | - * |
|
748 | - * { Description } |
|
749 | - * |
|
750 | - * @param integer $p_level |
|
751 | - */ |
|
752 | - public function _checkFormat($p_level=0) |
|
753 | - { |
|
754 | - $v_result = true; |
|
731 | + // --------------------------------------------------------------------------- |
|
732 | + // Function : _checkFormat() |
|
733 | + // Description : |
|
734 | + // This method check that the archive exists and is a valid zip archive. |
|
735 | + // Several level of check exists. (futur) |
|
736 | + // Parameters : |
|
737 | + // $p_level : Level of check. Default 0. |
|
738 | + // 0 : Check the first bytes (magic codes) (default value)) |
|
739 | + // 1 : 0 + Check the central directory (futur) |
|
740 | + // 2 : 1 + Check each file header (futur) |
|
741 | + // Return Values : |
|
742 | + // true on success, |
|
743 | + // false on error, the error code is set. |
|
744 | + // --------------------------------------------------------------------------- |
|
745 | + /** |
|
746 | + * Archive_Zip::_checkFormat() |
|
747 | + * |
|
748 | + * { Description } |
|
749 | + * |
|
750 | + * @param integer $p_level |
|
751 | + */ |
|
752 | + public function _checkFormat($p_level=0) |
|
753 | + { |
|
754 | + $v_result = true; |
|
755 | 755 | |
756 | 756 | // ----- Reset the error handler |
757 | 757 | $this->_errorReset(); |
@@ -759,16 +759,16 @@ discard block |
||
759 | 759 | // ----- Look if the file exits |
760 | 760 | if (!is_file($this->_zipname)) { |
761 | 761 | // ----- Error log |
762 | - $this->_errorLog(ARCHIVE_ZIP_ERR_MISSING_FILE, |
|
763 | - "Missing archive file '".$this->_zipname."'"); |
|
762 | + $this->_errorLog(ARCHIVE_ZIP_ERR_MISSING_FILE, |
|
763 | + "Missing archive file '".$this->_zipname."'"); |
|
764 | 764 | return false; |
765 | 765 | } |
766 | 766 | |
767 | 767 | // ----- Check that the file is readeable |
768 | 768 | if (!is_readable($this->_zipname)) { |
769 | 769 | // ----- Error log |
770 | - $this->_errorLog(ARCHIVE_ZIP_ERR_READ_OPEN_FAIL, |
|
771 | - "Unable to read archive '".$this->_zipname."'"); |
|
770 | + $this->_errorLog(ARCHIVE_ZIP_ERR_READ_OPEN_FAIL, |
|
771 | + "Unable to read archive '".$this->_zipname."'"); |
|
772 | 772 | return false; |
773 | 773 | } |
774 | 774 | |
@@ -783,34 +783,34 @@ discard block |
||
783 | 783 | |
784 | 784 | // ----- Return |
785 | 785 | return $v_result; |
786 | - } |
|
787 | - // --------------------------------------------------------------------------- |
|
788 | - |
|
789 | - // --------------------------------------------------------------------------- |
|
790 | - // Function : _create() |
|
791 | - // Description : |
|
792 | - // Parameters : |
|
793 | - // Return Values : |
|
794 | - // --------------------------------------------------------------------------- |
|
795 | - /** |
|
796 | - * Archive_Zip::_create() |
|
797 | - * |
|
798 | - * { Description } |
|
799 | - * |
|
800 | - */ |
|
801 | - public function _create($p_list, &$p_result_list, &$p_params) |
|
802 | - { |
|
803 | - $v_result=1; |
|
804 | - $v_list_detail = array(); |
|
805 | - |
|
806 | - $p_add_dir = $p_params['add_path']; |
|
807 | - $p_remove_dir = $p_params['remove_path']; |
|
808 | - $p_remove_all_dir = $p_params['remove_all_path']; |
|
786 | + } |
|
787 | + // --------------------------------------------------------------------------- |
|
788 | + |
|
789 | + // --------------------------------------------------------------------------- |
|
790 | + // Function : _create() |
|
791 | + // Description : |
|
792 | + // Parameters : |
|
793 | + // Return Values : |
|
794 | + // --------------------------------------------------------------------------- |
|
795 | + /** |
|
796 | + * Archive_Zip::_create() |
|
797 | + * |
|
798 | + * { Description } |
|
799 | + * |
|
800 | + */ |
|
801 | + public function _create($p_list, &$p_result_list, &$p_params) |
|
802 | + { |
|
803 | + $v_result=1; |
|
804 | + $v_list_detail = array(); |
|
805 | + |
|
806 | + $p_add_dir = $p_params['add_path']; |
|
807 | + $p_remove_dir = $p_params['remove_path']; |
|
808 | + $p_remove_all_dir = $p_params['remove_all_path']; |
|
809 | 809 | |
810 | 810 | // ----- Open the file in write mode |
811 | 811 | if (($v_result = $this->_openFd('wb')) != 1) { |
812 | 812 | // ----- Return |
813 | - return $v_result; |
|
813 | + return $v_result; |
|
814 | 814 | } |
815 | 815 | |
816 | 816 | // ----- Add the list of files |
@@ -821,29 +821,29 @@ discard block |
||
821 | 821 | |
822 | 822 | // ----- Return |
823 | 823 | return $v_result; |
824 | - } |
|
825 | - // --------------------------------------------------------------------------- |
|
826 | - |
|
827 | - // --------------------------------------------------------------------------- |
|
828 | - // Function : _add() |
|
829 | - // Description : |
|
830 | - // Parameters : |
|
831 | - // Return Values : |
|
832 | - // --------------------------------------------------------------------------- |
|
833 | - /** |
|
834 | - * Archive_Zip::_add() |
|
835 | - * |
|
836 | - * { Description } |
|
837 | - * |
|
838 | - */ |
|
839 | - public function _add($p_list, &$p_result_list, &$p_params) |
|
840 | - { |
|
841 | - $v_result=1; |
|
842 | - $v_list_detail = array(); |
|
843 | - |
|
844 | - $p_add_dir = $p_params['add_path']; |
|
845 | - $p_remove_dir = $p_params['remove_path']; |
|
846 | - $p_remove_all_dir = $p_params['remove_all_path']; |
|
824 | + } |
|
825 | + // --------------------------------------------------------------------------- |
|
826 | + |
|
827 | + // --------------------------------------------------------------------------- |
|
828 | + // Function : _add() |
|
829 | + // Description : |
|
830 | + // Parameters : |
|
831 | + // Return Values : |
|
832 | + // --------------------------------------------------------------------------- |
|
833 | + /** |
|
834 | + * Archive_Zip::_add() |
|
835 | + * |
|
836 | + * { Description } |
|
837 | + * |
|
838 | + */ |
|
839 | + public function _add($p_list, &$p_result_list, &$p_params) |
|
840 | + { |
|
841 | + $v_result=1; |
|
842 | + $v_list_detail = array(); |
|
843 | + |
|
844 | + $p_add_dir = $p_params['add_path']; |
|
845 | + $p_remove_dir = $p_params['remove_path']; |
|
846 | + $p_remove_all_dir = $p_params['remove_all_path']; |
|
847 | 847 | |
848 | 848 | // ----- Look if the archive exists or is empty and need to be created |
849 | 849 | if ((!is_file($this->_zipname)) || (filesize($this->_zipname) == 0)) { |
@@ -858,10 +858,10 @@ discard block |
||
858 | 858 | |
859 | 859 | // ----- Read the central directory informations |
860 | 860 | $v_central_dir = array(); |
861 | - if (($v_result = $this->_readEndCentralDir($v_central_dir)) != 1) { |
|
862 | - $this->_closeFd(); |
|
863 | - return $v_result; |
|
864 | - } |
|
861 | + if (($v_result = $this->_readEndCentralDir($v_central_dir)) != 1) { |
|
862 | + $this->_closeFd(); |
|
863 | + return $v_result; |
|
864 | + } |
|
865 | 865 | |
866 | 866 | // ----- Go to beginning of File |
867 | 867 | @rewind($this->_zip_fd); |
@@ -874,8 +874,8 @@ discard block |
||
874 | 874 | $this->_closeFd(); |
875 | 875 | |
876 | 876 | $this->_errorLog(ARCHIVE_ZIP_ERR_READ_OPEN_FAIL, |
877 | - 'Unable to open temporary file \'' |
|
878 | - .$v_zip_temp_name.'\' in binary write mode'); |
|
877 | + 'Unable to open temporary file \'' |
|
878 | + .$v_zip_temp_name.'\' in binary write mode'); |
|
879 | 879 | return Archive_Zip::errorCode(); |
880 | 880 | } |
881 | 881 | |
@@ -883,64 +883,64 @@ discard block |
||
883 | 883 | // TBC : Here I should better append the file and go back to erase the |
884 | 884 | // central dir |
885 | 885 | $v_size = $v_central_dir['offset']; |
886 | - while ($v_size != 0) { |
|
887 | - $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
886 | + while ($v_size != 0) { |
|
887 | + $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
888 | 888 | ? $v_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
889 | - $v_buffer = fread($this->_zip_fd, $v_read_size); |
|
890 | - @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); |
|
891 | - $v_size -= $v_read_size; |
|
892 | - } |
|
889 | + $v_buffer = fread($this->_zip_fd, $v_read_size); |
|
890 | + @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); |
|
891 | + $v_size -= $v_read_size; |
|
892 | + } |
|
893 | 893 | |
894 | 894 | // ----- Swap the file descriptor |
895 | 895 | // Here is a trick : I swap the temporary fd with the zip fd, in order to |
896 | 896 | // use the following methods on the temporary fil and not the real archive |
897 | 897 | $v_swap = $this->_zip_fd; |
898 | - $this->_zip_fd = $v_zip_temp_fd; |
|
899 | - $v_zip_temp_fd = $v_swap; |
|
898 | + $this->_zip_fd = $v_zip_temp_fd; |
|
899 | + $v_zip_temp_fd = $v_swap; |
|
900 | 900 | |
901 | 901 | // ----- Add the files |
902 | 902 | $v_header_list = array(); |
903 | - if (($v_result = $this->_addFileList($p_list, $v_header_list, |
|
904 | - $p_add_dir, $p_remove_dir, |
|
905 | - $p_remove_all_dir, $p_params)) != 1) { |
|
906 | - fclose($v_zip_temp_fd); |
|
907 | - $this->_closeFd(); |
|
908 | - @unlink($v_zip_temp_name); |
|
903 | + if (($v_result = $this->_addFileList($p_list, $v_header_list, |
|
904 | + $p_add_dir, $p_remove_dir, |
|
905 | + $p_remove_all_dir, $p_params)) != 1) { |
|
906 | + fclose($v_zip_temp_fd); |
|
907 | + $this->_closeFd(); |
|
908 | + @unlink($v_zip_temp_name); |
|
909 | 909 | |
910 | - // ----- Return |
|
911 | - return $v_result; |
|
912 | - } |
|
910 | + // ----- Return |
|
911 | + return $v_result; |
|
912 | + } |
|
913 | 913 | |
914 | 914 | // ----- Store the offset of the central dir |
915 | 915 | $v_offset = @ftell($this->_zip_fd); |
916 | 916 | |
917 | 917 | // ----- Copy the block of file headers from the old archive |
918 | 918 | $v_size = $v_central_dir['size']; |
919 | - while ($v_size != 0) { |
|
920 | - $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
919 | + while ($v_size != 0) { |
|
920 | + $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
921 | 921 | ? $v_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
922 | - $v_buffer = @fread($v_zip_temp_fd, $v_read_size); |
|
923 | - @fwrite($this->_zip_fd, $v_buffer, $v_read_size); |
|
924 | - $v_size -= $v_read_size; |
|
925 | - } |
|
922 | + $v_buffer = @fread($v_zip_temp_fd, $v_read_size); |
|
923 | + @fwrite($this->_zip_fd, $v_buffer, $v_read_size); |
|
924 | + $v_size -= $v_read_size; |
|
925 | + } |
|
926 | 926 | |
927 | 927 | // ----- Create the Central Dir files header |
928 | 928 | for ($i=0, $v_count=0; $i < count($v_header_list); $i++) { |
929 | 929 | // ----- Create the file header |
930 | - if ($v_header_list[$i]['status'] == 'ok') { |
|
931 | - if (($v_result=$this->_writeCentralFileHeader($v_header_list[$i]))!=1) { |
|
932 | - fclose($v_zip_temp_fd); |
|
933 | - $this->_closeFd(); |
|
934 | - @unlink($v_zip_temp_name); |
|
930 | + if ($v_header_list[$i]['status'] == 'ok') { |
|
931 | + if (($v_result=$this->_writeCentralFileHeader($v_header_list[$i]))!=1) { |
|
932 | + fclose($v_zip_temp_fd); |
|
933 | + $this->_closeFd(); |
|
934 | + @unlink($v_zip_temp_name); |
|
935 | 935 | |
936 | - // ----- Return |
|
937 | - return $v_result; |
|
938 | - } |
|
939 | - $v_count++; |
|
940 | - } |
|
936 | + // ----- Return |
|
937 | + return $v_result; |
|
938 | + } |
|
939 | + $v_count++; |
|
940 | + } |
|
941 | 941 | |
942 | - // ----- Transform the header to a 'usable' info |
|
943 | - $this->_convertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); |
|
942 | + // ----- Transform the header to a 'usable' info |
|
943 | + $this->_convertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); |
|
944 | 944 | } |
945 | 945 | |
946 | 946 | // ----- Zip file comment |
@@ -955,16 +955,16 @@ discard block |
||
955 | 955 | $v_size, $v_offset, |
956 | 956 | $v_comment)) != 1) { |
957 | 957 | // ----- Reset the file list |
958 | - unset($v_header_list); |
|
958 | + unset($v_header_list); |
|
959 | 959 | |
960 | - // ----- Return |
|
961 | - return $v_result; |
|
960 | + // ----- Return |
|
961 | + return $v_result; |
|
962 | 962 | } |
963 | 963 | |
964 | 964 | // ----- Swap back the file descriptor |
965 | 965 | $v_swap = $this->_zip_fd; |
966 | - $this->_zip_fd = $v_zip_temp_fd; |
|
967 | - $v_zip_temp_fd = $v_swap; |
|
966 | + $this->_zip_fd = $v_zip_temp_fd; |
|
967 | + $v_zip_temp_fd = $v_swap; |
|
968 | 968 | |
969 | 969 | // ----- Close |
970 | 970 | $this->_closeFd(); |
@@ -983,100 +983,100 @@ discard block |
||
983 | 983 | |
984 | 984 | // ----- Return |
985 | 985 | return $v_result; |
986 | - } |
|
987 | - // --------------------------------------------------------------------------- |
|
988 | - |
|
989 | - // --------------------------------------------------------------------------- |
|
990 | - // Function : _openFd() |
|
991 | - // Description : |
|
992 | - // Parameters : |
|
993 | - // --------------------------------------------------------------------------- |
|
994 | - /** |
|
995 | - * Archive_Zip::_openFd() |
|
996 | - * |
|
997 | - * { Description } |
|
998 | - * |
|
999 | - */ |
|
1000 | - public function _openFd($p_mode) |
|
1001 | - { |
|
1002 | - $v_result=1; |
|
986 | + } |
|
987 | + // --------------------------------------------------------------------------- |
|
988 | + |
|
989 | + // --------------------------------------------------------------------------- |
|
990 | + // Function : _openFd() |
|
991 | + // Description : |
|
992 | + // Parameters : |
|
993 | + // --------------------------------------------------------------------------- |
|
994 | + /** |
|
995 | + * Archive_Zip::_openFd() |
|
996 | + * |
|
997 | + * { Description } |
|
998 | + * |
|
999 | + */ |
|
1000 | + public function _openFd($p_mode) |
|
1001 | + { |
|
1002 | + $v_result=1; |
|
1003 | 1003 | |
1004 | 1004 | // ----- Look if already open |
1005 | 1005 | if ($this->_zip_fd != 0) { |
1006 | 1006 | $this->_errorLog(ARCHIVE_ZIP_ERR_READ_OPEN_FAIL, |
1007 | - 'Zip file \''.$this->_zipname.'\' already open'); |
|
1007 | + 'Zip file \''.$this->_zipname.'\' already open'); |
|
1008 | 1008 | return Archive_Zip::errorCode(); |
1009 | 1009 | } |
1010 | 1010 | |
1011 | 1011 | // ----- Open the zip file |
1012 | 1012 | if (($this->_zip_fd = @fopen($this->_zipname, $p_mode)) == 0) { |
1013 | 1013 | $this->_errorLog(ARCHIVE_ZIP_ERR_READ_OPEN_FAIL, |
1014 | - 'Unable to open archive \''.$this->_zipname |
|
1015 | - .'\' in '.$p_mode.' mode'); |
|
1014 | + 'Unable to open archive \''.$this->_zipname |
|
1015 | + .'\' in '.$p_mode.' mode'); |
|
1016 | 1016 | return Archive_Zip::errorCode(); |
1017 | 1017 | } |
1018 | 1018 | |
1019 | 1019 | // ----- Return |
1020 | 1020 | return $v_result; |
1021 | - } |
|
1022 | - // --------------------------------------------------------------------------- |
|
1023 | - |
|
1024 | - // --------------------------------------------------------------------------- |
|
1025 | - // Function : _closeFd() |
|
1026 | - // Description : |
|
1027 | - // Parameters : |
|
1028 | - // --------------------------------------------------------------------------- |
|
1029 | - /** |
|
1030 | - * Archive_Zip::_closeFd() |
|
1031 | - * |
|
1032 | - * { Description } |
|
1033 | - * |
|
1034 | - */ |
|
1035 | - public function _closeFd() |
|
1036 | - { |
|
1037 | - $v_result=1; |
|
1038 | - |
|
1039 | - if ($this->_zip_fd != 0) { |
|
1040 | - @fclose($this->_zip_fd); |
|
1041 | - } |
|
1042 | - $this->_zip_fd = 0; |
|
1021 | + } |
|
1022 | + // --------------------------------------------------------------------------- |
|
1023 | + |
|
1024 | + // --------------------------------------------------------------------------- |
|
1025 | + // Function : _closeFd() |
|
1026 | + // Description : |
|
1027 | + // Parameters : |
|
1028 | + // --------------------------------------------------------------------------- |
|
1029 | + /** |
|
1030 | + * Archive_Zip::_closeFd() |
|
1031 | + * |
|
1032 | + * { Description } |
|
1033 | + * |
|
1034 | + */ |
|
1035 | + public function _closeFd() |
|
1036 | + { |
|
1037 | + $v_result=1; |
|
1038 | + |
|
1039 | + if ($this->_zip_fd != 0) { |
|
1040 | + @fclose($this->_zip_fd); |
|
1041 | + } |
|
1042 | + $this->_zip_fd = 0; |
|
1043 | 1043 | |
1044 | 1044 | // ----- Return |
1045 | 1045 | return $v_result; |
1046 | - } |
|
1047 | - // --------------------------------------------------------------------------- |
|
1048 | - |
|
1049 | - // --------------------------------------------------------------------------- |
|
1050 | - // Function : _addList() |
|
1051 | - // Description : |
|
1052 | - // $p_add_dir and $p_remove_dir will give the ability to memorize a path which is |
|
1053 | - // different from the real path of the file. This is usefull if you want to have PclTar |
|
1054 | - // running in any directory, and memorize relative path from an other directory. |
|
1055 | - // Parameters : |
|
1056 | - // $p_list : An array containing the file or directory names to add in the tar |
|
1057 | - // $p_result_list : list of added files with their properties (specially the status field) |
|
1058 | - // $p_add_dir : Path to add in the filename path archived |
|
1059 | - // $p_remove_dir : Path to remove in the filename path archived |
|
1060 | - // Return Values : |
|
1061 | - // --------------------------------------------------------------------------- |
|
1062 | - /** |
|
1063 | - * Archive_Zip::_addList() |
|
1064 | - * |
|
1065 | - * { Description } |
|
1066 | - * |
|
1067 | - */ |
|
1068 | - public function _addList($p_list, &$p_result_list, |
|
1046 | + } |
|
1047 | + // --------------------------------------------------------------------------- |
|
1048 | + |
|
1049 | + // --------------------------------------------------------------------------- |
|
1050 | + // Function : _addList() |
|
1051 | + // Description : |
|
1052 | + // $p_add_dir and $p_remove_dir will give the ability to memorize a path which is |
|
1053 | + // different from the real path of the file. This is usefull if you want to have PclTar |
|
1054 | + // running in any directory, and memorize relative path from an other directory. |
|
1055 | + // Parameters : |
|
1056 | + // $p_list : An array containing the file or directory names to add in the tar |
|
1057 | + // $p_result_list : list of added files with their properties (specially the status field) |
|
1058 | + // $p_add_dir : Path to add in the filename path archived |
|
1059 | + // $p_remove_dir : Path to remove in the filename path archived |
|
1060 | + // Return Values : |
|
1061 | + // --------------------------------------------------------------------------- |
|
1062 | + /** |
|
1063 | + * Archive_Zip::_addList() |
|
1064 | + * |
|
1065 | + * { Description } |
|
1066 | + * |
|
1067 | + */ |
|
1068 | + public function _addList($p_list, &$p_result_list, |
|
1069 | 1069 | $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_params) |
1070 | - { |
|
1071 | - $v_result=1; |
|
1070 | + { |
|
1071 | + $v_result=1; |
|
1072 | 1072 | |
1073 | 1073 | // ----- Add the files |
1074 | 1074 | $v_header_list = array(); |
1075 | - if (($v_result = $this->_addFileList($p_list, $v_header_list, |
|
1076 | - $p_add_dir, $p_remove_dir, |
|
1077 | - $p_remove_all_dir, $p_params)) != 1) { |
|
1078 | - return $v_result; |
|
1079 | - } |
|
1075 | + if (($v_result = $this->_addFileList($p_list, $v_header_list, |
|
1076 | + $p_add_dir, $p_remove_dir, |
|
1077 | + $p_remove_all_dir, $p_params)) != 1) { |
|
1078 | + return $v_result; |
|
1079 | + } |
|
1080 | 1080 | |
1081 | 1081 | // ----- Store the offset of the central dir |
1082 | 1082 | $v_offset = @ftell($this->_zip_fd); |
@@ -1084,15 +1084,15 @@ discard block |
||
1084 | 1084 | // ----- Create the Central Dir files header |
1085 | 1085 | for ($i=0, $v_count=0; $i < count($v_header_list); $i++) { |
1086 | 1086 | // ----- Create the file header |
1087 | - if ($v_header_list[$i]['status'] == 'ok') { |
|
1088 | - if (($v_result = $this->_writeCentralFileHeader($v_header_list[$i])) != 1) { |
|
1089 | - return $v_result; |
|
1090 | - } |
|
1091 | - $v_count++; |
|
1092 | - } |
|
1087 | + if ($v_header_list[$i]['status'] == 'ok') { |
|
1088 | + if (($v_result = $this->_writeCentralFileHeader($v_header_list[$i])) != 1) { |
|
1089 | + return $v_result; |
|
1090 | + } |
|
1091 | + $v_count++; |
|
1092 | + } |
|
1093 | 1093 | |
1094 | - // ----- Transform the header to a 'usable' info |
|
1095 | - $this->_convertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); |
|
1094 | + // ----- Transform the header to a 'usable' info |
|
1095 | + $this->_convertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); |
|
1096 | 1096 | } |
1097 | 1097 | |
1098 | 1098 | // ----- Zip file comment |
@@ -1105,42 +1105,42 @@ discard block |
||
1105 | 1105 | if (($v_result = $this->_writeCentralHeader($v_count, $v_size, $v_offset, |
1106 | 1106 | $v_comment)) != 1) { |
1107 | 1107 | // ----- Reset the file list |
1108 | - unset($v_header_list); |
|
1108 | + unset($v_header_list); |
|
1109 | 1109 | |
1110 | - // ----- Return |
|
1111 | - return $v_result; |
|
1110 | + // ----- Return |
|
1111 | + return $v_result; |
|
1112 | 1112 | } |
1113 | 1113 | |
1114 | 1114 | // ----- Return |
1115 | 1115 | return $v_result; |
1116 | - } |
|
1117 | - // --------------------------------------------------------------------------- |
|
1118 | - |
|
1119 | - // --------------------------------------------------------------------------- |
|
1120 | - // Function : _addFileList() |
|
1121 | - // Description : |
|
1122 | - // $p_add_dir and $p_remove_dir will give the ability to memorize a path which is |
|
1123 | - // different from the real path of the file. This is usefull if you want to |
|
1124 | - // run the lib in any directory, and memorize relative path from an other directory. |
|
1125 | - // Parameters : |
|
1126 | - // $p_list : An array containing the file or directory names to add in the tar |
|
1127 | - // $p_result_list : list of added files with their properties (specially the status field) |
|
1128 | - // $p_add_dir : Path to add in the filename path archived |
|
1129 | - // $p_remove_dir : Path to remove in the filename path archived |
|
1130 | - // Return Values : |
|
1131 | - // --------------------------------------------------------------------------- |
|
1132 | - /** |
|
1133 | - * Archive_Zip::_addFileList() |
|
1134 | - * |
|
1135 | - * { Description } |
|
1136 | - * |
|
1137 | - */ |
|
1138 | - public function _addFileList($p_list, &$p_result_list, |
|
1116 | + } |
|
1117 | + // --------------------------------------------------------------------------- |
|
1118 | + |
|
1119 | + // --------------------------------------------------------------------------- |
|
1120 | + // Function : _addFileList() |
|
1121 | + // Description : |
|
1122 | + // $p_add_dir and $p_remove_dir will give the ability to memorize a path which is |
|
1123 | + // different from the real path of the file. This is usefull if you want to |
|
1124 | + // run the lib in any directory, and memorize relative path from an other directory. |
|
1125 | + // Parameters : |
|
1126 | + // $p_list : An array containing the file or directory names to add in the tar |
|
1127 | + // $p_result_list : list of added files with their properties (specially the status field) |
|
1128 | + // $p_add_dir : Path to add in the filename path archived |
|
1129 | + // $p_remove_dir : Path to remove in the filename path archived |
|
1130 | + // Return Values : |
|
1131 | + // --------------------------------------------------------------------------- |
|
1132 | + /** |
|
1133 | + * Archive_Zip::_addFileList() |
|
1134 | + * |
|
1135 | + * { Description } |
|
1136 | + * |
|
1137 | + */ |
|
1138 | + public function _addFileList($p_list, &$p_result_list, |
|
1139 | 1139 | $p_add_dir, $p_remove_dir, $p_remove_all_dir, |
1140 | 1140 | &$p_params) |
1141 | - { |
|
1142 | - $v_result=1; |
|
1143 | - $v_header = array(); |
|
1141 | + { |
|
1142 | + $v_result=1; |
|
1143 | + $v_header = array(); |
|
1144 | 1144 | |
1145 | 1145 | // ----- Recuperate the current number of elt in list |
1146 | 1146 | $v_nb = count($p_result_list); |
@@ -1148,34 +1148,34 @@ discard block |
||
1148 | 1148 | // ----- Loop on the files |
1149 | 1149 | for ($j=0; ($j<count($p_list)) && ($v_result==1); $j++) { |
1150 | 1150 | // ----- Recuperate the filename |
1151 | - $p_filename = $this->_tool_TranslateWinPath($p_list[$j], false); |
|
1152 | - |
|
1153 | - // ----- Skip empty file names |
|
1154 | - if ($p_filename == '') { |
|
1155 | - continue; |
|
1156 | - } |
|
1157 | - |
|
1158 | - // ----- Check the filename |
|
1159 | - if (!file_exists($p_filename)) { |
|
1160 | - $this->_errorLog(ARCHIVE_ZIP_ERR_MISSING_FILE, |
|
1161 | - "File '$p_filename' does not exists"); |
|
1162 | - return Archive_Zip::errorCode(); |
|
1163 | - } |
|
1164 | - |
|
1165 | - // ----- Look if it is a file or a dir with no all pathnre move |
|
1166 | - if (is_file($p_filename) || (is_dir($p_filename) && !$p_remove_all_dir)) { |
|
1167 | - // ----- Add the file |
|
1151 | + $p_filename = $this->_tool_TranslateWinPath($p_list[$j], false); |
|
1152 | + |
|
1153 | + // ----- Skip empty file names |
|
1154 | + if ($p_filename == '') { |
|
1155 | + continue; |
|
1156 | + } |
|
1157 | + |
|
1158 | + // ----- Check the filename |
|
1159 | + if (!file_exists($p_filename)) { |
|
1160 | + $this->_errorLog(ARCHIVE_ZIP_ERR_MISSING_FILE, |
|
1161 | + "File '$p_filename' does not exists"); |
|
1162 | + return Archive_Zip::errorCode(); |
|
1163 | + } |
|
1164 | + |
|
1165 | + // ----- Look if it is a file or a dir with no all pathnre move |
|
1166 | + if (is_file($p_filename) || (is_dir($p_filename) && !$p_remove_all_dir)) { |
|
1167 | + // ----- Add the file |
|
1168 | 1168 | if (($v_result = $this->_addFile($p_filename, $v_header, $p_add_dir, $p_remove_dir, $p_remove_all_dir, $p_params)) != 1) { |
1169 | 1169 | // ----- Return status |
1170 | - return $v_result; |
|
1170 | + return $v_result; |
|
1171 | 1171 | } |
1172 | 1172 | |
1173 | 1173 | // ----- Store the file infos |
1174 | 1174 | $p_result_list[$v_nb++] = $v_header; |
1175 | - } |
|
1175 | + } |
|
1176 | 1176 | |
1177 | - // ----- Look for directory |
|
1178 | - if (is_dir($p_filename)) { |
|
1177 | + // ----- Look for directory |
|
1178 | + if (is_dir($p_filename)) { |
|
1179 | 1179 | |
1180 | 1180 | // ----- Look for path |
1181 | 1181 | if ($p_filename != '.') { |
@@ -1186,69 +1186,69 @@ discard block |
||
1186 | 1186 | |
1187 | 1187 | // ----- Read the directory for files and sub-directories |
1188 | 1188 | $p_hdir = opendir($p_filename); |
1189 | - $p_hitem = readdir($p_hdir); // '.' directory |
|
1189 | + $p_hitem = readdir($p_hdir); // '.' directory |
|
1190 | 1190 | $p_hitem = readdir($p_hdir); // '..' directory |
1191 | 1191 | while ($p_hitem = readdir($p_hdir)) { |
1192 | 1192 | |
1193 | - // ----- Look for a file |
|
1194 | - if (is_file($v_path.$p_hitem)) { |
|
1193 | + // ----- Look for a file |
|
1194 | + if (is_file($v_path.$p_hitem)) { |
|
1195 | 1195 | |
1196 | 1196 | // ----- Add the file |
1197 | 1197 | if (($v_result = $this->_addFile($v_path.$p_hitem, $v_header, $p_add_dir, $p_remove_dir, $p_remove_all_dir, $p_params)) != 1) { |
1198 | 1198 | // ----- Return status |
1199 | - return $v_result; |
|
1199 | + return $v_result; |
|
1200 | 1200 | } |
1201 | 1201 | |
1202 | 1202 | // ----- Store the file infos |
1203 | 1203 | $p_result_list[$v_nb++] = $v_header; |
1204 | - } |
|
1204 | + } |
|
1205 | 1205 | |
1206 | - // ----- Recursive call to _addFileList() |
|
1207 | - else { |
|
1206 | + // ----- Recursive call to _addFileList() |
|
1207 | + else { |
|
1208 | 1208 | |
1209 | 1209 | // ----- Need an array as parameter |
1210 | 1210 | $p_temp_list[0] = $v_path.$p_hitem; |
1211 | - $v_result = $this->_addFileList($p_temp_list, $p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, $p_params); |
|
1211 | + $v_result = $this->_addFileList($p_temp_list, $p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, $p_params); |
|
1212 | 1212 | |
1213 | 1213 | // ----- Update the number of elements of the list |
1214 | 1214 | $v_nb = count($p_result_list); |
1215 | - } |
|
1215 | + } |
|
1216 | 1216 | } |
1217 | 1217 | |
1218 | 1218 | // ----- Free memory for the recursive loop |
1219 | 1219 | unset($p_temp_list); |
1220 | - unset($p_hdir); |
|
1221 | - unset($p_hitem); |
|
1222 | - } |
|
1223 | - } |
|
1224 | - |
|
1225 | - return $v_result; |
|
1226 | - } |
|
1227 | - // --------------------------------------------------------------------------- |
|
1228 | - |
|
1229 | - // --------------------------------------------------------------------------- |
|
1230 | - // Function : _addFile() |
|
1231 | - // Description : |
|
1232 | - // Parameters : |
|
1233 | - // Return Values : |
|
1234 | - // --------------------------------------------------------------------------- |
|
1235 | - /** |
|
1236 | - * Archive_Zip::_addFile() |
|
1237 | - * |
|
1238 | - * { Description } |
|
1239 | - * |
|
1240 | - */ |
|
1241 | - public function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_params) |
|
1242 | - { |
|
1243 | - $v_result=1; |
|
1244 | - |
|
1245 | - if ($p_filename == '') { |
|
1246 | - // ----- Error log |
|
1247 | - $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_PARAMETER, 'Invalid file list parameter (invalid or empty list)'); |
|
1220 | + unset($p_hdir); |
|
1221 | + unset($p_hitem); |
|
1222 | + } |
|
1223 | + } |
|
1248 | 1224 | |
1249 | - // ----- Return |
|
1250 | - return Archive_Zip::errorCode(); |
|
1251 | - } |
|
1225 | + return $v_result; |
|
1226 | + } |
|
1227 | + // --------------------------------------------------------------------------- |
|
1228 | + |
|
1229 | + // --------------------------------------------------------------------------- |
|
1230 | + // Function : _addFile() |
|
1231 | + // Description : |
|
1232 | + // Parameters : |
|
1233 | + // Return Values : |
|
1234 | + // --------------------------------------------------------------------------- |
|
1235 | + /** |
|
1236 | + * Archive_Zip::_addFile() |
|
1237 | + * |
|
1238 | + * { Description } |
|
1239 | + * |
|
1240 | + */ |
|
1241 | + public function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_params) |
|
1242 | + { |
|
1243 | + $v_result=1; |
|
1244 | + |
|
1245 | + if ($p_filename == '') { |
|
1246 | + // ----- Error log |
|
1247 | + $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_PARAMETER, 'Invalid file list parameter (invalid or empty list)'); |
|
1248 | + |
|
1249 | + // ----- Return |
|
1250 | + return Archive_Zip::errorCode(); |
|
1251 | + } |
|
1252 | 1252 | |
1253 | 1253 | // ----- Calculate the stored filename |
1254 | 1254 | $v_stored_filename = $p_filename; |
@@ -1311,51 +1311,51 @@ discard block |
||
1311 | 1311 | |
1312 | 1312 | // ----- Set the file properties |
1313 | 1313 | clearstatcache(); |
1314 | - $p_header['version'] = 20; |
|
1315 | - $p_header['version_extracted'] = 10; |
|
1316 | - $p_header['flag'] = 0; |
|
1317 | - $p_header['compression'] = 0; |
|
1318 | - $p_header['mtime'] = filemtime($p_filename); |
|
1319 | - $p_header['crc'] = 0; |
|
1320 | - $p_header['compressed_size'] = 0; |
|
1321 | - $p_header['size'] = filesize($p_filename); |
|
1322 | - $p_header['filename_len'] = strlen($p_filename); |
|
1323 | - $p_header['extra_len'] = 0; |
|
1324 | - $p_header['comment_len'] = 0; |
|
1325 | - $p_header['disk'] = 0; |
|
1326 | - $p_header['internal'] = 0; |
|
1327 | - $p_header['external'] = (is_file($p_filename)?0xFE49FFE0:0x41FF0010); |
|
1328 | - $p_header['offset'] = 0; |
|
1329 | - $p_header['filename'] = $p_filename; |
|
1330 | - $p_header['stored_filename'] = $v_stored_filename; |
|
1331 | - $p_header['extra'] = ''; |
|
1332 | - $p_header['comment'] = ''; |
|
1333 | - $p_header['status'] = 'ok'; |
|
1334 | - $p_header['index'] = -1; |
|
1314 | + $p_header['version'] = 20; |
|
1315 | + $p_header['version_extracted'] = 10; |
|
1316 | + $p_header['flag'] = 0; |
|
1317 | + $p_header['compression'] = 0; |
|
1318 | + $p_header['mtime'] = filemtime($p_filename); |
|
1319 | + $p_header['crc'] = 0; |
|
1320 | + $p_header['compressed_size'] = 0; |
|
1321 | + $p_header['size'] = filesize($p_filename); |
|
1322 | + $p_header['filename_len'] = strlen($p_filename); |
|
1323 | + $p_header['extra_len'] = 0; |
|
1324 | + $p_header['comment_len'] = 0; |
|
1325 | + $p_header['disk'] = 0; |
|
1326 | + $p_header['internal'] = 0; |
|
1327 | + $p_header['external'] = (is_file($p_filename)?0xFE49FFE0:0x41FF0010); |
|
1328 | + $p_header['offset'] = 0; |
|
1329 | + $p_header['filename'] = $p_filename; |
|
1330 | + $p_header['stored_filename'] = $v_stored_filename; |
|
1331 | + $p_header['extra'] = ''; |
|
1332 | + $p_header['comment'] = ''; |
|
1333 | + $p_header['status'] = 'ok'; |
|
1334 | + $p_header['index'] = -1; |
|
1335 | 1335 | |
1336 | 1336 | // ----- Look for pre-add callback |
1337 | 1337 | if (isset($p_params[ARCHIVE_ZIP_PARAM_PRE_ADD]) |
1338 | 1338 | && ($p_params[ARCHIVE_ZIP_PARAM_PRE_ADD] != '')) { |
1339 | 1339 | |
1340 | - // ----- Generate a local information |
|
1341 | - $v_local_header = array(); |
|
1340 | + // ----- Generate a local information |
|
1341 | + $v_local_header = array(); |
|
1342 | 1342 | $this->_convertHeader2FileInfo($p_header, $v_local_header); |
1343 | 1343 | |
1344 | - // ----- Call the callback |
|
1345 | - // Here I do not use call_user_func() because I need to send a reference to the |
|
1346 | - // header. |
|
1347 | - eval('$v_result = '.$p_params[ARCHIVE_ZIP_PARAM_PRE_ADD].'(ARCHIVE_ZIP_PARAM_PRE_ADD, $v_local_header);'); |
|
1344 | + // ----- Call the callback |
|
1345 | + // Here I do not use call_user_func() because I need to send a reference to the |
|
1346 | + // header. |
|
1347 | + eval('$v_result = '.$p_params[ARCHIVE_ZIP_PARAM_PRE_ADD].'(ARCHIVE_ZIP_PARAM_PRE_ADD, $v_local_header);'); |
|
1348 | 1348 | if ($v_result == 0) { |
1349 | 1349 | // ----- Change the file status |
1350 | 1350 | $p_header['status'] = 'skipped'; |
1351 | 1351 | $v_result = 1; |
1352 | 1352 | } |
1353 | 1353 | |
1354 | - // ----- Update the informations |
|
1355 | - // Only some fields can be modified |
|
1356 | - if ($p_header['stored_filename'] != $v_local_header['stored_filename']) { |
|
1357 | - $p_header['stored_filename'] = $this->_tool_PathReduction($v_local_header['stored_filename']); |
|
1358 | - } |
|
1354 | + // ----- Update the informations |
|
1355 | + // Only some fields can be modified |
|
1356 | + if ($p_header['stored_filename'] != $v_local_header['stored_filename']) { |
|
1357 | + $p_header['stored_filename'] = $this->_tool_PathReduction($v_local_header['stored_filename']); |
|
1358 | + } |
|
1359 | 1359 | } |
1360 | 1360 | |
1361 | 1361 | // ----- Look for empty stored filename |
@@ -1371,34 +1371,34 @@ discard block |
||
1371 | 1371 | // ----- Look if no error, or file not skipped |
1372 | 1372 | if ($p_header['status'] == 'ok') { |
1373 | 1373 | |
1374 | - // ----- Look for a file |
|
1375 | - if (is_file($p_filename)) { |
|
1376 | - // ----- Open the source file |
|
1374 | + // ----- Look for a file |
|
1375 | + if (is_file($p_filename)) { |
|
1376 | + // ----- Open the source file |
|
1377 | 1377 | if (($v_file = @fopen($p_filename, 'rb')) == 0) { |
1378 | 1378 | $this->_errorLog(ARCHIVE_ZIP_ERR_READ_OPEN_FAIL, "Unable to open file '$p_filename' in binary read mode"); |
1379 | 1379 | return Archive_Zip::errorCode(); |
1380 | 1380 | } |
1381 | 1381 | |
1382 | - if ($p_params['no_compression']) { |
|
1383 | - // ----- Read the file content |
|
1384 | - $v_content_compressed = @fread($v_file, $p_header['size']); |
|
1382 | + if ($p_params['no_compression']) { |
|
1383 | + // ----- Read the file content |
|
1384 | + $v_content_compressed = @fread($v_file, $p_header['size']); |
|
1385 | 1385 | |
1386 | - // ----- Calculate the CRC |
|
1387 | - $p_header['crc'] = crc32($v_content_compressed); |
|
1388 | - } else { |
|
1389 | - // ----- Read the file content |
|
1390 | - $v_content = @fread($v_file, $p_header['size']); |
|
1386 | + // ----- Calculate the CRC |
|
1387 | + $p_header['crc'] = crc32($v_content_compressed); |
|
1388 | + } else { |
|
1389 | + // ----- Read the file content |
|
1390 | + $v_content = @fread($v_file, $p_header['size']); |
|
1391 | 1391 | |
1392 | - // ----- Calculate the CRC |
|
1393 | - $p_header['crc'] = crc32($v_content); |
|
1392 | + // ----- Calculate the CRC |
|
1393 | + $p_header['crc'] = crc32($v_content); |
|
1394 | 1394 | |
1395 | - // ----- Compress the file |
|
1396 | - $v_content_compressed = gzdeflate($v_content); |
|
1397 | - } |
|
1395 | + // ----- Compress the file |
|
1396 | + $v_content_compressed = gzdeflate($v_content); |
|
1397 | + } |
|
1398 | 1398 | |
1399 | 1399 | // ----- Set header parameters |
1400 | 1400 | $p_header['compressed_size'] = strlen($v_content_compressed); |
1401 | - $p_header['compression'] = 8; |
|
1401 | + $p_header['compression'] = 8; |
|
1402 | 1402 | |
1403 | 1403 | // ----- Call the header generation |
1404 | 1404 | if (($v_result = $this->_writeFileHeader($p_header)) != 1) { |
@@ -1408,68 +1408,68 @@ discard block |
||
1408 | 1408 | |
1409 | 1409 | // ----- Write the compressed content |
1410 | 1410 | $v_binary_data = pack('a'.$p_header['compressed_size'], $v_content_compressed); |
1411 | - @fwrite($this->_zip_fd, $v_binary_data, $p_header['compressed_size']); |
|
1411 | + @fwrite($this->_zip_fd, $v_binary_data, $p_header['compressed_size']); |
|
1412 | 1412 | |
1413 | 1413 | // ----- Close the file |
1414 | 1414 | @fclose($v_file); |
1415 | - } |
|
1415 | + } |
|
1416 | 1416 | |
1417 | - // ----- Look for a directory |
|
1418 | - else { |
|
1419 | - // ----- Set the file properties |
|
1417 | + // ----- Look for a directory |
|
1418 | + else { |
|
1419 | + // ----- Set the file properties |
|
1420 | 1420 | $p_header['filename'] .= '/'; |
1421 | - $p_header['filename_len']++; |
|
1422 | - $p_header['size'] = 0; |
|
1423 | - $p_header['external'] = 0x41FF0010; // Value for a folder : to be checked |
|
1421 | + $p_header['filename_len']++; |
|
1422 | + $p_header['size'] = 0; |
|
1423 | + $p_header['external'] = 0x41FF0010; // Value for a folder : to be checked |
|
1424 | 1424 | |
1425 | 1425 | // ----- Call the header generation |
1426 | 1426 | if (($v_result = $this->_writeFileHeader($p_header)) != 1) { |
1427 | 1427 | return $v_result; |
1428 | 1428 | } |
1429 | - } |
|
1429 | + } |
|
1430 | 1430 | } |
1431 | 1431 | |
1432 | 1432 | // ----- Look for pre-add callback |
1433 | 1433 | if (isset($p_params[ARCHIVE_ZIP_PARAM_POST_ADD]) |
1434 | 1434 | && ($p_params[ARCHIVE_ZIP_PARAM_POST_ADD] != '')) { |
1435 | 1435 | |
1436 | - // ----- Generate a local information |
|
1437 | - $v_local_header = array(); |
|
1436 | + // ----- Generate a local information |
|
1437 | + $v_local_header = array(); |
|
1438 | 1438 | $this->_convertHeader2FileInfo($p_header, $v_local_header); |
1439 | 1439 | |
1440 | - // ----- Call the callback |
|
1441 | - // Here I do not use call_user_func() because I need to send a reference to the |
|
1442 | - // header. |
|
1443 | - eval('$v_result = '.$p_params[ARCHIVE_ZIP_PARAM_POST_ADD].'(ARCHIVE_ZIP_PARAM_POST_ADD, $v_local_header);'); |
|
1440 | + // ----- Call the callback |
|
1441 | + // Here I do not use call_user_func() because I need to send a reference to the |
|
1442 | + // header. |
|
1443 | + eval('$v_result = '.$p_params[ARCHIVE_ZIP_PARAM_POST_ADD].'(ARCHIVE_ZIP_PARAM_POST_ADD, $v_local_header);'); |
|
1444 | 1444 | if ($v_result == 0) { |
1445 | 1445 | // ----- Ignored |
1446 | 1446 | $v_result = 1; |
1447 | 1447 | } |
1448 | 1448 | |
1449 | - // ----- Update the informations |
|
1450 | - // Nothing can be modified |
|
1449 | + // ----- Update the informations |
|
1450 | + // Nothing can be modified |
|
1451 | 1451 | } |
1452 | 1452 | |
1453 | 1453 | // ----- Return |
1454 | 1454 | return $v_result; |
1455 | - } |
|
1456 | - // --------------------------------------------------------------------------- |
|
1457 | - |
|
1458 | - // --------------------------------------------------------------------------- |
|
1459 | - // Function : _writeFileHeader() |
|
1460 | - // Description : |
|
1461 | - // Parameters : |
|
1462 | - // Return Values : |
|
1463 | - // --------------------------------------------------------------------------- |
|
1464 | - /** |
|
1465 | - * Archive_Zip::_writeFileHeader() |
|
1466 | - * |
|
1467 | - * { Description } |
|
1468 | - * |
|
1469 | - */ |
|
1470 | - public function _writeFileHeader(&$p_header) |
|
1471 | - { |
|
1472 | - $v_result=1; |
|
1455 | + } |
|
1456 | + // --------------------------------------------------------------------------- |
|
1457 | + |
|
1458 | + // --------------------------------------------------------------------------- |
|
1459 | + // Function : _writeFileHeader() |
|
1460 | + // Description : |
|
1461 | + // Parameters : |
|
1462 | + // Return Values : |
|
1463 | + // --------------------------------------------------------------------------- |
|
1464 | + /** |
|
1465 | + * Archive_Zip::_writeFileHeader() |
|
1466 | + * |
|
1467 | + * { Description } |
|
1468 | + * |
|
1469 | + */ |
|
1470 | + public function _writeFileHeader(&$p_header) |
|
1471 | + { |
|
1472 | + $v_result=1; |
|
1473 | 1473 | |
1474 | 1474 | // TBC |
1475 | 1475 | //for(reset($p_header); $key = key($p_header); next($p_header)) { |
@@ -1480,14 +1480,14 @@ discard block |
||
1480 | 1480 | |
1481 | 1481 | // ----- Transform UNIX mtime to DOS format mdate/mtime |
1482 | 1482 | $v_date = getdate($p_header['mtime']); |
1483 | - $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; |
|
1484 | - $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; |
|
1483 | + $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; |
|
1484 | + $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; |
|
1485 | 1485 | |
1486 | 1486 | // ----- Packed data |
1487 | 1487 | $v_binary_data = pack('VvvvvvVVVvv', 0x04034b50, $p_header['version'], $p_header['flag'], |
1488 | - $p_header['compression'], $v_mtime, $v_mdate, |
|
1489 | - $p_header['crc'], $p_header['compressed_size'], $p_header['size'], |
|
1490 | - strlen($p_header['stored_filename']), $p_header['extra_len']); |
|
1488 | + $p_header['compression'], $v_mtime, $v_mdate, |
|
1489 | + $p_header['crc'], $p_header['compressed_size'], $p_header['size'], |
|
1490 | + strlen($p_header['stored_filename']), $p_header['extra_len']); |
|
1491 | 1491 | |
1492 | 1492 | // ----- Write the first 148 bytes of the header in the archive |
1493 | 1493 | fwrite($this->_zip_fd, $v_binary_data, 30); |
@@ -1496,30 +1496,30 @@ discard block |
||
1496 | 1496 | if (strlen($p_header['stored_filename']) != 0) { |
1497 | 1497 | fwrite($this->_zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename'])); |
1498 | 1498 | } |
1499 | - if ($p_header['extra_len'] != 0) { |
|
1500 | - fwrite($this->_zip_fd, $p_header['extra'], $p_header['extra_len']); |
|
1501 | - } |
|
1499 | + if ($p_header['extra_len'] != 0) { |
|
1500 | + fwrite($this->_zip_fd, $p_header['extra'], $p_header['extra_len']); |
|
1501 | + } |
|
1502 | 1502 | |
1503 | 1503 | // ----- Return |
1504 | 1504 | return $v_result; |
1505 | - } |
|
1506 | - // --------------------------------------------------------------------------- |
|
1507 | - |
|
1508 | - // --------------------------------------------------------------------------- |
|
1509 | - // Function : _writeCentralFileHeader() |
|
1510 | - // Description : |
|
1511 | - // Parameters : |
|
1512 | - // Return Values : |
|
1513 | - // --------------------------------------------------------------------------- |
|
1514 | - /** |
|
1515 | - * Archive_Zip::_writeCentralFileHeader() |
|
1516 | - * |
|
1517 | - * { Description } |
|
1518 | - * |
|
1519 | - */ |
|
1520 | - public function _writeCentralFileHeader(&$p_header) |
|
1521 | - { |
|
1522 | - $v_result=1; |
|
1505 | + } |
|
1506 | + // --------------------------------------------------------------------------- |
|
1507 | + |
|
1508 | + // --------------------------------------------------------------------------- |
|
1509 | + // Function : _writeCentralFileHeader() |
|
1510 | + // Description : |
|
1511 | + // Parameters : |
|
1512 | + // Return Values : |
|
1513 | + // --------------------------------------------------------------------------- |
|
1514 | + /** |
|
1515 | + * Archive_Zip::_writeCentralFileHeader() |
|
1516 | + * |
|
1517 | + * { Description } |
|
1518 | + * |
|
1519 | + */ |
|
1520 | + public function _writeCentralFileHeader(&$p_header) |
|
1521 | + { |
|
1522 | + $v_result=1; |
|
1523 | 1523 | |
1524 | 1524 | // TBC |
1525 | 1525 | //for(reset($p_header); $key = key($p_header); next($p_header)) { |
@@ -1527,15 +1527,15 @@ discard block |
||
1527 | 1527 | |
1528 | 1528 | // ----- Transform UNIX mtime to DOS format mdate/mtime |
1529 | 1529 | $v_date = getdate($p_header['mtime']); |
1530 | - $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; |
|
1531 | - $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; |
|
1530 | + $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; |
|
1531 | + $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; |
|
1532 | 1532 | |
1533 | 1533 | // ----- Packed data |
1534 | 1534 | $v_binary_data = pack('VvvvvvvVVVvvvvvVV', 0x02014b50, $p_header['version'], $p_header['version_extracted'], |
1535 | - $p_header['flag'], $p_header['compression'], $v_mtime, $v_mdate, $p_header['crc'], |
|
1536 | - $p_header['compressed_size'], $p_header['size'], |
|
1537 | - strlen($p_header['stored_filename']), $p_header['extra_len'], $p_header['comment_len'], |
|
1538 | - $p_header['disk'], $p_header['internal'], $p_header['external'], $p_header['offset']); |
|
1535 | + $p_header['flag'], $p_header['compression'], $v_mtime, $v_mdate, $p_header['crc'], |
|
1536 | + $p_header['compressed_size'], $p_header['size'], |
|
1537 | + strlen($p_header['stored_filename']), $p_header['extra_len'], $p_header['comment_len'], |
|
1538 | + $p_header['disk'], $p_header['internal'], $p_header['external'], $p_header['offset']); |
|
1539 | 1539 | |
1540 | 1540 | // ----- Write the 42 bytes of the header in the zip file |
1541 | 1541 | fwrite($this->_zip_fd, $v_binary_data, 46); |
@@ -1544,33 +1544,33 @@ discard block |
||
1544 | 1544 | if (strlen($p_header['stored_filename']) != 0) { |
1545 | 1545 | fwrite($this->_zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename'])); |
1546 | 1546 | } |
1547 | - if ($p_header['extra_len'] != 0) { |
|
1548 | - fwrite($this->_zip_fd, $p_header['extra'], $p_header['extra_len']); |
|
1549 | - } |
|
1550 | - if ($p_header['comment_len'] != 0) { |
|
1551 | - fwrite($this->_zip_fd, $p_header['comment'], $p_header['comment_len']); |
|
1552 | - } |
|
1547 | + if ($p_header['extra_len'] != 0) { |
|
1548 | + fwrite($this->_zip_fd, $p_header['extra'], $p_header['extra_len']); |
|
1549 | + } |
|
1550 | + if ($p_header['comment_len'] != 0) { |
|
1551 | + fwrite($this->_zip_fd, $p_header['comment'], $p_header['comment_len']); |
|
1552 | + } |
|
1553 | 1553 | |
1554 | 1554 | // ----- Return |
1555 | 1555 | return $v_result; |
1556 | - } |
|
1557 | - // --------------------------------------------------------------------------- |
|
1558 | - |
|
1559 | - // --------------------------------------------------------------------------- |
|
1560 | - // Function : _writeCentralHeader() |
|
1561 | - // Description : |
|
1562 | - // Parameters : |
|
1563 | - // Return Values : |
|
1564 | - // --------------------------------------------------------------------------- |
|
1565 | - /** |
|
1566 | - * Archive_Zip::_writeCentralHeader() |
|
1567 | - * |
|
1568 | - * { Description } |
|
1569 | - * |
|
1570 | - */ |
|
1571 | - public function _writeCentralHeader($p_nb_entries, $p_size, $p_offset, $p_comment) |
|
1572 | - { |
|
1573 | - $v_result=1; |
|
1556 | + } |
|
1557 | + // --------------------------------------------------------------------------- |
|
1558 | + |
|
1559 | + // --------------------------------------------------------------------------- |
|
1560 | + // Function : _writeCentralHeader() |
|
1561 | + // Description : |
|
1562 | + // Parameters : |
|
1563 | + // Return Values : |
|
1564 | + // --------------------------------------------------------------------------- |
|
1565 | + /** |
|
1566 | + * Archive_Zip::_writeCentralHeader() |
|
1567 | + * |
|
1568 | + * { Description } |
|
1569 | + * |
|
1570 | + */ |
|
1571 | + public function _writeCentralHeader($p_nb_entries, $p_size, $p_offset, $p_comment) |
|
1572 | + { |
|
1573 | + $v_result=1; |
|
1574 | 1574 | |
1575 | 1575 | // ----- Packed data |
1576 | 1576 | $v_binary_data = pack('VvvvvVVv', 0x06054b50, 0, 0, $p_nb_entries, $p_nb_entries, $p_size, $p_offset, strlen($p_comment)); |
@@ -1585,60 +1585,60 @@ discard block |
||
1585 | 1585 | |
1586 | 1586 | // ----- Return |
1587 | 1587 | return $v_result; |
1588 | - } |
|
1589 | - // --------------------------------------------------------------------------- |
|
1590 | - |
|
1591 | - // --------------------------------------------------------------------------- |
|
1592 | - // Function : _list() |
|
1593 | - // Description : |
|
1594 | - // Parameters : |
|
1595 | - // Return Values : |
|
1596 | - // --------------------------------------------------------------------------- |
|
1597 | - /** |
|
1598 | - * Archive_Zip::_list() |
|
1599 | - * |
|
1600 | - * { Description } |
|
1601 | - * |
|
1602 | - */ |
|
1603 | - public function _list(&$p_list) |
|
1604 | - { |
|
1605 | - $v_result=1; |
|
1588 | + } |
|
1589 | + // --------------------------------------------------------------------------- |
|
1590 | + |
|
1591 | + // --------------------------------------------------------------------------- |
|
1592 | + // Function : _list() |
|
1593 | + // Description : |
|
1594 | + // Parameters : |
|
1595 | + // Return Values : |
|
1596 | + // --------------------------------------------------------------------------- |
|
1597 | + /** |
|
1598 | + * Archive_Zip::_list() |
|
1599 | + * |
|
1600 | + * { Description } |
|
1601 | + * |
|
1602 | + */ |
|
1603 | + public function _list(&$p_list) |
|
1604 | + { |
|
1605 | + $v_result=1; |
|
1606 | 1606 | |
1607 | 1607 | // ----- Open the zip file |
1608 | 1608 | if (($this->_zip_fd = @fopen($this->_zipname, 'rb')) == 0) { |
1609 | 1609 | // ----- Error log |
1610 | - $this->_errorLog(ARCHIVE_ZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->_zipname.'\' in binary read mode'); |
|
1610 | + $this->_errorLog(ARCHIVE_ZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->_zipname.'\' in binary read mode'); |
|
1611 | 1611 | |
1612 | - // ----- Return |
|
1613 | - return Archive_Zip::errorCode(); |
|
1612 | + // ----- Return |
|
1613 | + return Archive_Zip::errorCode(); |
|
1614 | 1614 | } |
1615 | 1615 | |
1616 | 1616 | // ----- Read the central directory informations |
1617 | 1617 | $v_central_dir = array(); |
1618 | - if (($v_result = $this->_readEndCentralDir($v_central_dir)) != 1) { |
|
1619 | - return $v_result; |
|
1620 | - } |
|
1618 | + if (($v_result = $this->_readEndCentralDir($v_central_dir)) != 1) { |
|
1619 | + return $v_result; |
|
1620 | + } |
|
1621 | 1621 | |
1622 | 1622 | // ----- Go to beginning of Central Dir |
1623 | 1623 | @rewind($this->_zip_fd); |
1624 | - if (@fseek($this->_zip_fd, $v_central_dir['offset'])) { |
|
1625 | - // ----- Error log |
|
1626 | - $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); |
|
1624 | + if (@fseek($this->_zip_fd, $v_central_dir['offset'])) { |
|
1625 | + // ----- Error log |
|
1626 | + $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); |
|
1627 | 1627 | |
1628 | - // ----- Return |
|
1629 | - return Archive_Zip::errorCode(); |
|
1630 | - } |
|
1628 | + // ----- Return |
|
1629 | + return Archive_Zip::errorCode(); |
|
1630 | + } |
|
1631 | 1631 | |
1632 | 1632 | // ----- Read each entry |
1633 | 1633 | for ($i=0; $i<$v_central_dir['entries']; $i++) { |
1634 | 1634 | // ----- Read the file header |
1635 | - if (($v_result = $this->_readCentralFileHeader($v_header)) != 1) { |
|
1636 | - return $v_result; |
|
1637 | - } |
|
1635 | + if (($v_result = $this->_readCentralFileHeader($v_header)) != 1) { |
|
1636 | + return $v_result; |
|
1637 | + } |
|
1638 | 1638 | $v_header['index'] = $i; |
1639 | 1639 | |
1640 | - // ----- Get the only interesting attributes |
|
1641 | - $this->_convertHeader2FileInfo($v_header, $p_list[$i]); |
|
1640 | + // ----- Get the only interesting attributes |
|
1641 | + $this->_convertHeader2FileInfo($v_header, $p_list[$i]); |
|
1642 | 1642 | unset($v_header); |
1643 | 1643 | } |
1644 | 1644 | |
@@ -1647,82 +1647,82 @@ discard block |
||
1647 | 1647 | |
1648 | 1648 | // ----- Return |
1649 | 1649 | return $v_result; |
1650 | - } |
|
1651 | - // --------------------------------------------------------------------------- |
|
1652 | - |
|
1653 | - // --------------------------------------------------------------------------- |
|
1654 | - // Function : _convertHeader2FileInfo() |
|
1655 | - // Description : |
|
1656 | - // This function takes the file informations from the central directory |
|
1657 | - // entries and extract the interesting parameters that will be given back. |
|
1658 | - // The resulting file infos are set in the array $p_info |
|
1659 | - // $p_info['filename'] : Filename with full path. Given by user (add), |
|
1660 | - // extracted in the filesystem (extract). |
|
1661 | - // $p_info['stored_filename'] : Stored filename in the archive. |
|
1662 | - // $p_info['size'] = Size of the file. |
|
1663 | - // $p_info['compressed_size'] = Compressed size of the file. |
|
1664 | - // $p_info['mtime'] = Last modification date of the file. |
|
1665 | - // $p_info['comment'] = Comment associated with the file. |
|
1666 | - // $p_info['folder'] = true/false : indicates if the entry is a folder or not. |
|
1667 | - // $p_info['status'] = status of the action on the file. |
|
1668 | - // Parameters : |
|
1669 | - // Return Values : |
|
1670 | - // --------------------------------------------------------------------------- |
|
1671 | - /** |
|
1672 | - * Archive_Zip::_convertHeader2FileInfo() |
|
1673 | - * |
|
1674 | - * { Description } |
|
1675 | - * |
|
1676 | - */ |
|
1677 | - public function _convertHeader2FileInfo($p_header, &$p_info) |
|
1678 | - { |
|
1679 | - $v_result=1; |
|
1650 | + } |
|
1651 | + // --------------------------------------------------------------------------- |
|
1652 | + |
|
1653 | + // --------------------------------------------------------------------------- |
|
1654 | + // Function : _convertHeader2FileInfo() |
|
1655 | + // Description : |
|
1656 | + // This function takes the file informations from the central directory |
|
1657 | + // entries and extract the interesting parameters that will be given back. |
|
1658 | + // The resulting file infos are set in the array $p_info |
|
1659 | + // $p_info['filename'] : Filename with full path. Given by user (add), |
|
1660 | + // extracted in the filesystem (extract). |
|
1661 | + // $p_info['stored_filename'] : Stored filename in the archive. |
|
1662 | + // $p_info['size'] = Size of the file. |
|
1663 | + // $p_info['compressed_size'] = Compressed size of the file. |
|
1664 | + // $p_info['mtime'] = Last modification date of the file. |
|
1665 | + // $p_info['comment'] = Comment associated with the file. |
|
1666 | + // $p_info['folder'] = true/false : indicates if the entry is a folder or not. |
|
1667 | + // $p_info['status'] = status of the action on the file. |
|
1668 | + // Parameters : |
|
1669 | + // Return Values : |
|
1670 | + // --------------------------------------------------------------------------- |
|
1671 | + /** |
|
1672 | + * Archive_Zip::_convertHeader2FileInfo() |
|
1673 | + * |
|
1674 | + * { Description } |
|
1675 | + * |
|
1676 | + */ |
|
1677 | + public function _convertHeader2FileInfo($p_header, &$p_info) |
|
1678 | + { |
|
1679 | + $v_result=1; |
|
1680 | 1680 | |
1681 | 1681 | // ----- Get the interesting attributes |
1682 | 1682 | $p_info['filename'] = $p_header['filename']; |
1683 | - $p_info['stored_filename'] = $p_header['stored_filename']; |
|
1684 | - $p_info['size'] = $p_header['size']; |
|
1685 | - $p_info['compressed_size'] = $p_header['compressed_size']; |
|
1686 | - $p_info['mtime'] = $p_header['mtime']; |
|
1687 | - $p_info['comment'] = $p_header['comment']; |
|
1688 | - $p_info['folder'] = (($p_header['external']&0x00000010)==0x00000010); |
|
1689 | - $p_info['index'] = $p_header['index']; |
|
1690 | - $p_info['status'] = $p_header['status']; |
|
1683 | + $p_info['stored_filename'] = $p_header['stored_filename']; |
|
1684 | + $p_info['size'] = $p_header['size']; |
|
1685 | + $p_info['compressed_size'] = $p_header['compressed_size']; |
|
1686 | + $p_info['mtime'] = $p_header['mtime']; |
|
1687 | + $p_info['comment'] = $p_header['comment']; |
|
1688 | + $p_info['folder'] = (($p_header['external']&0x00000010)==0x00000010); |
|
1689 | + $p_info['index'] = $p_header['index']; |
|
1690 | + $p_info['status'] = $p_header['status']; |
|
1691 | 1691 | |
1692 | 1692 | // ----- Return |
1693 | 1693 | return $v_result; |
1694 | - } |
|
1695 | - // --------------------------------------------------------------------------- |
|
1696 | - |
|
1697 | - // --------------------------------------------------------------------------- |
|
1698 | - // Function : _extractByRule() |
|
1699 | - // Description : |
|
1700 | - // Extract a file or directory depending of rules (by index, by name, ...) |
|
1701 | - // Parameters : |
|
1702 | - // $p_file_list : An array where will be placed the properties of each |
|
1703 | - // extracted file |
|
1704 | - // $p_path : Path to add while writing the extracted files |
|
1705 | - // $p_remove_path : Path to remove (from the file memorized path) while writing the |
|
1706 | - // extracted files. If the path does not match the file path, |
|
1707 | - // the file is extracted with its memorized path. |
|
1708 | - // $p_remove_path does not apply to 'list' mode. |
|
1709 | - // $p_path and $p_remove_path are commulative. |
|
1710 | - // Return Values : |
|
1711 | - // 1 on success,0 or less on error (see error code list) |
|
1712 | - // --------------------------------------------------------------------------- |
|
1713 | - /** |
|
1714 | - * Archive_Zip::_extractByRule() |
|
1715 | - * |
|
1716 | - * { Description } |
|
1717 | - * |
|
1718 | - */ |
|
1719 | - public function _extractByRule(&$p_file_list, &$p_params) |
|
1720 | - { |
|
1721 | - $v_result=1; |
|
1722 | - |
|
1723 | - $p_path = $p_params['add_path']; |
|
1724 | - $p_remove_path = $p_params['remove_path']; |
|
1725 | - $p_remove_all_path = $p_params['remove_all_path']; |
|
1694 | + } |
|
1695 | + // --------------------------------------------------------------------------- |
|
1696 | + |
|
1697 | + // --------------------------------------------------------------------------- |
|
1698 | + // Function : _extractByRule() |
|
1699 | + // Description : |
|
1700 | + // Extract a file or directory depending of rules (by index, by name, ...) |
|
1701 | + // Parameters : |
|
1702 | + // $p_file_list : An array where will be placed the properties of each |
|
1703 | + // extracted file |
|
1704 | + // $p_path : Path to add while writing the extracted files |
|
1705 | + // $p_remove_path : Path to remove (from the file memorized path) while writing the |
|
1706 | + // extracted files. If the path does not match the file path, |
|
1707 | + // the file is extracted with its memorized path. |
|
1708 | + // $p_remove_path does not apply to 'list' mode. |
|
1709 | + // $p_path and $p_remove_path are commulative. |
|
1710 | + // Return Values : |
|
1711 | + // 1 on success,0 or less on error (see error code list) |
|
1712 | + // --------------------------------------------------------------------------- |
|
1713 | + /** |
|
1714 | + * Archive_Zip::_extractByRule() |
|
1715 | + * |
|
1716 | + * { Description } |
|
1717 | + * |
|
1718 | + */ |
|
1719 | + public function _extractByRule(&$p_file_list, &$p_params) |
|
1720 | + { |
|
1721 | + $v_result=1; |
|
1722 | + |
|
1723 | + $p_path = $p_params['add_path']; |
|
1724 | + $p_remove_path = $p_params['remove_path']; |
|
1725 | + $p_remove_all_path = $p_params['remove_all_path']; |
|
1726 | 1726 | |
1727 | 1727 | // ----- Check the path |
1728 | 1728 | if (($p_path == '') |
@@ -1734,16 +1734,16 @@ discard block |
||
1734 | 1734 | // ----- Reduce the path last (and duplicated) '/' |
1735 | 1735 | if (($p_path != './') && ($p_path != '/')) { |
1736 | 1736 | // ----- Look for the path end '/' |
1737 | - while (substr($p_path, -1) == '/') { |
|
1738 | - $p_path = substr($p_path, 0, strlen($p_path)-1); |
|
1739 | - } |
|
1737 | + while (substr($p_path, -1) == '/') { |
|
1738 | + $p_path = substr($p_path, 0, strlen($p_path)-1); |
|
1739 | + } |
|
1740 | 1740 | } |
1741 | 1741 | |
1742 | 1742 | // ----- Look for path to remove format (should end by /) |
1743 | 1743 | if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/')) { |
1744 | 1744 | $p_remove_path .= '/'; |
1745 | 1745 | } |
1746 | - $p_remove_path_size = strlen($p_remove_path); |
|
1746 | + $p_remove_path_size = strlen($p_remove_path); |
|
1747 | 1747 | |
1748 | 1748 | // ----- Open the zip file |
1749 | 1749 | if (($v_result = $this->_openFd('rb')) != 1) { |
@@ -1752,202 +1752,202 @@ discard block |
||
1752 | 1752 | |
1753 | 1753 | // ----- Read the central directory informations |
1754 | 1754 | $v_central_dir = array(); |
1755 | - if (($v_result = $this->_readEndCentralDir($v_central_dir)) != 1) { |
|
1756 | - // ----- Close the zip file |
|
1757 | - $this->_closeFd(); |
|
1755 | + if (($v_result = $this->_readEndCentralDir($v_central_dir)) != 1) { |
|
1756 | + // ----- Close the zip file |
|
1757 | + $this->_closeFd(); |
|
1758 | 1758 | |
1759 | - return $v_result; |
|
1760 | - } |
|
1759 | + return $v_result; |
|
1760 | + } |
|
1761 | 1761 | |
1762 | 1762 | // ----- Start at beginning of Central Dir |
1763 | 1763 | $v_pos_entry = $v_central_dir['offset']; |
1764 | 1764 | |
1765 | 1765 | // ----- Read each entry |
1766 | 1766 | $j_start = 0; |
1767 | - for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) { |
|
1768 | - // ----- Read next Central dir entry |
|
1769 | - @rewind($this->_zip_fd); |
|
1770 | - if (@fseek($this->_zip_fd, $v_pos_entry)) { |
|
1771 | - $this->_closeFd(); |
|
1767 | + for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) { |
|
1768 | + // ----- Read next Central dir entry |
|
1769 | + @rewind($this->_zip_fd); |
|
1770 | + if (@fseek($this->_zip_fd, $v_pos_entry)) { |
|
1771 | + $this->_closeFd(); |
|
1772 | 1772 | |
1773 | - $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_ARCHIVE_ZIP, |
|
1774 | - 'Invalid archive size'); |
|
1773 | + $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_ARCHIVE_ZIP, |
|
1774 | + 'Invalid archive size'); |
|
1775 | 1775 | |
1776 | - return Archive_Zip::errorCode(); |
|
1777 | - } |
|
1776 | + return Archive_Zip::errorCode(); |
|
1777 | + } |
|
1778 | 1778 | |
1779 | - // ----- Read the file header |
|
1780 | - $v_header = array(); |
|
1781 | - if (($v_result = $this->_readCentralFileHeader($v_header)) != 1) { |
|
1782 | - $this->_closeFd(); |
|
1779 | + // ----- Read the file header |
|
1780 | + $v_header = array(); |
|
1781 | + if (($v_result = $this->_readCentralFileHeader($v_header)) != 1) { |
|
1782 | + $this->_closeFd(); |
|
1783 | 1783 | |
1784 | - return $v_result; |
|
1785 | - } |
|
1784 | + return $v_result; |
|
1785 | + } |
|
1786 | 1786 | |
1787 | - // ----- Store the index |
|
1788 | - $v_header['index'] = $i; |
|
1787 | + // ----- Store the index |
|
1788 | + $v_header['index'] = $i; |
|
1789 | 1789 | |
1790 | - // ----- Store the file position |
|
1791 | - $v_pos_entry = ftell($this->_zip_fd); |
|
1790 | + // ----- Store the file position |
|
1791 | + $v_pos_entry = ftell($this->_zip_fd); |
|
1792 | 1792 | |
1793 | - // ----- Look for the specific extract rules |
|
1794 | - $v_extract = false; |
|
1793 | + // ----- Look for the specific extract rules |
|
1794 | + $v_extract = false; |
|
1795 | 1795 | |
1796 | - // ----- Look for extract by name rule |
|
1797 | - if (isset($p_params[ARCHIVE_ZIP_PARAM_BY_NAME]) |
|
1796 | + // ----- Look for extract by name rule |
|
1797 | + if (isset($p_params[ARCHIVE_ZIP_PARAM_BY_NAME]) |
|
1798 | 1798 | && ($p_params[ARCHIVE_ZIP_PARAM_BY_NAME] != 0)) { |
1799 | 1799 | |
1800 | - // ----- Look if the filename is in the list |
|
1801 | - for ($j=0; |
|
1802 | - ($j < count($p_params[ARCHIVE_ZIP_PARAM_BY_NAME])) |
|
1800 | + // ----- Look if the filename is in the list |
|
1801 | + for ($j=0; |
|
1802 | + ($j < count($p_params[ARCHIVE_ZIP_PARAM_BY_NAME])) |
|
1803 | 1803 | && (!$v_extract); |
1804 | - $j++) { |
|
1804 | + $j++) { |
|
1805 | 1805 | |
1806 | - // ----- Look for a directory |
|
1807 | - if (substr($p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j], -1) == '/') { |
|
1806 | + // ----- Look for a directory |
|
1807 | + if (substr($p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j], -1) == '/') { |
|
1808 | 1808 | |
1809 | - // ----- Look if the directory is in the filename path |
|
1810 | - if ((strlen($v_header['stored_filename']) > strlen($p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j])) |
|
1809 | + // ----- Look if the directory is in the filename path |
|
1810 | + if ((strlen($v_header['stored_filename']) > strlen($p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j])) |
|
1811 | 1811 | && (substr($v_header['stored_filename'], 0, strlen($p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j])) == $p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j])) { |
1812 | - $v_extract = true; |
|
1813 | - } |
|
1814 | - } |
|
1815 | - // ----- Look for a filename |
|
1816 | - elseif ($v_header['stored_filename'] == $p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j]) { |
|
1817 | - $v_extract = true; |
|
1818 | - } |
|
1819 | - } |
|
1820 | - } |
|
1821 | - |
|
1822 | - // ----- Look for extract by ereg rule |
|
1823 | - elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_EREG]) |
|
1812 | + $v_extract = true; |
|
1813 | + } |
|
1814 | + } |
|
1815 | + // ----- Look for a filename |
|
1816 | + elseif ($v_header['stored_filename'] == $p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j]) { |
|
1817 | + $v_extract = true; |
|
1818 | + } |
|
1819 | + } |
|
1820 | + } |
|
1821 | + |
|
1822 | + // ----- Look for extract by ereg rule |
|
1823 | + elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_EREG]) |
|
1824 | 1824 | && ($p_params[ARCHIVE_ZIP_PARAM_BY_EREG] != '')) { |
1825 | - if (ereg($p_params[ARCHIVE_ZIP_PARAM_BY_EREG], $v_header['stored_filename'])) { |
|
1826 | - $v_extract = true; |
|
1827 | - } |
|
1828 | - } |
|
1825 | + if (ereg($p_params[ARCHIVE_ZIP_PARAM_BY_EREG], $v_header['stored_filename'])) { |
|
1826 | + $v_extract = true; |
|
1827 | + } |
|
1828 | + } |
|
1829 | 1829 | |
1830 | - // ----- Look for extract by preg rule |
|
1831 | - elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_PREG]) |
|
1830 | + // ----- Look for extract by preg rule |
|
1831 | + elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_PREG]) |
|
1832 | 1832 | && ($p_params[ARCHIVE_ZIP_PARAM_BY_PREG] != '')) { |
1833 | - if (preg_match($p_params[ARCHIVE_ZIP_PARAM_BY_PREG], $v_header['stored_filename'])) { |
|
1834 | - $v_extract = true; |
|
1835 | - } |
|
1836 | - } |
|
1833 | + if (preg_match($p_params[ARCHIVE_ZIP_PARAM_BY_PREG], $v_header['stored_filename'])) { |
|
1834 | + $v_extract = true; |
|
1835 | + } |
|
1836 | + } |
|
1837 | 1837 | |
1838 | - // ----- Look for extract by index rule |
|
1839 | - elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX]) |
|
1838 | + // ----- Look for extract by index rule |
|
1839 | + elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX]) |
|
1840 | 1840 | && ($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX] != 0)) { |
1841 | 1841 | |
1842 | - // ----- Look if the index is in the list |
|
1843 | - for ($j=$j_start; ($j < count($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX])) && (!$v_extract); $j++) { |
|
1844 | - if (($i>=$p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['start']) && ($i<=$p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['end'])) { |
|
1845 | - $v_extract = true; |
|
1846 | - } |
|
1847 | - if ($i>=$p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['end']) { |
|
1848 | - $j_start = $j+1; |
|
1849 | - } |
|
1850 | - |
|
1851 | - if ($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['start']>$i) { |
|
1852 | - break; |
|
1853 | - } |
|
1854 | - } |
|
1855 | - } |
|
1842 | + // ----- Look if the index is in the list |
|
1843 | + for ($j=$j_start; ($j < count($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX])) && (!$v_extract); $j++) { |
|
1844 | + if (($i>=$p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['start']) && ($i<=$p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['end'])) { |
|
1845 | + $v_extract = true; |
|
1846 | + } |
|
1847 | + if ($i>=$p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['end']) { |
|
1848 | + $j_start = $j+1; |
|
1849 | + } |
|
1850 | + |
|
1851 | + if ($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['start']>$i) { |
|
1852 | + break; |
|
1853 | + } |
|
1854 | + } |
|
1855 | + } |
|
1856 | 1856 | |
1857 | - // ----- Look for no rule, which means extract all the archive |
|
1858 | - else { |
|
1859 | - $v_extract = true; |
|
1860 | - } |
|
1857 | + // ----- Look for no rule, which means extract all the archive |
|
1858 | + else { |
|
1859 | + $v_extract = true; |
|
1860 | + } |
|
1861 | 1861 | |
1862 | 1862 | |
1863 | - // ----- Look for real extraction |
|
1864 | - if ($v_extract) { |
|
1863 | + // ----- Look for real extraction |
|
1864 | + if ($v_extract) { |
|
1865 | 1865 | |
1866 | 1866 | // ----- Go to the file position |
1867 | 1867 | @rewind($this->_zip_fd); |
1868 | - if (@fseek($this->_zip_fd, $v_header['offset'])) { |
|
1869 | - // ----- Close the zip file |
|
1870 | - $this->_closeFd(); |
|
1868 | + if (@fseek($this->_zip_fd, $v_header['offset'])) { |
|
1869 | + // ----- Close the zip file |
|
1870 | + $this->_closeFd(); |
|
1871 | 1871 | |
1872 | - // ----- Error log |
|
1873 | - $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); |
|
1872 | + // ----- Error log |
|
1873 | + $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); |
|
1874 | 1874 | |
1875 | - // ----- Return |
|
1876 | - return Archive_Zip::errorCode(); |
|
1877 | - } |
|
1875 | + // ----- Return |
|
1876 | + return Archive_Zip::errorCode(); |
|
1877 | + } |
|
1878 | 1878 | |
1879 | 1879 | // ----- Look for extraction as string |
1880 | 1880 | if ($p_params[ARCHIVE_ZIP_PARAM_EXTRACT_AS_STRING]) { |
1881 | 1881 | |
1882 | - // ----- Extracting the file |
|
1883 | - if (($v_result = $this->_extractFileAsString($v_header, $v_string)) != 1) { |
|
1884 | - // ----- Close the zip file |
|
1882 | + // ----- Extracting the file |
|
1883 | + if (($v_result = $this->_extractFileAsString($v_header, $v_string)) != 1) { |
|
1884 | + // ----- Close the zip file |
|
1885 | 1885 | $this->_closeFd(); |
1886 | 1886 | |
1887 | - return $v_result; |
|
1888 | - } |
|
1887 | + return $v_result; |
|
1888 | + } |
|
1889 | 1889 | |
1890 | - // ----- Get the only interesting attributes |
|
1891 | - if (($v_result = $this->_convertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted])) != 1) { |
|
1892 | - // ----- Close the zip file |
|
1890 | + // ----- Get the only interesting attributes |
|
1891 | + if (($v_result = $this->_convertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted])) != 1) { |
|
1892 | + // ----- Close the zip file |
|
1893 | 1893 | $this->_closeFd(); |
1894 | 1894 | |
1895 | - return $v_result; |
|
1896 | - } |
|
1895 | + return $v_result; |
|
1896 | + } |
|
1897 | 1897 | |
1898 | - // ----- Set the file content |
|
1899 | - $p_file_list[$v_nb_extracted]['content'] = $v_string; |
|
1898 | + // ----- Set the file content |
|
1899 | + $p_file_list[$v_nb_extracted]['content'] = $v_string; |
|
1900 | 1900 | |
1901 | - // ----- Next extracted file |
|
1902 | - $v_nb_extracted++; |
|
1901 | + // ----- Next extracted file |
|
1902 | + $v_nb_extracted++; |
|
1903 | 1903 | } else { |
1904 | 1904 | // ----- Extracting the file |
1905 | - if (($v_result = $this->_extractFile($v_header, $p_path, $p_remove_path, $p_remove_all_path, $p_params)) != 1) { |
|
1906 | - // ----- Close the zip file |
|
1905 | + if (($v_result = $this->_extractFile($v_header, $p_path, $p_remove_path, $p_remove_all_path, $p_params)) != 1) { |
|
1906 | + // ----- Close the zip file |
|
1907 | 1907 | $this->_closeFd(); |
1908 | 1908 | |
1909 | - return $v_result; |
|
1910 | - } |
|
1909 | + return $v_result; |
|
1910 | + } |
|
1911 | 1911 | |
1912 | - // ----- Get the only interesting attributes |
|
1913 | - if (($v_result = $this->_convertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1) { |
|
1914 | - // ----- Close the zip file |
|
1912 | + // ----- Get the only interesting attributes |
|
1913 | + if (($v_result = $this->_convertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1) { |
|
1914 | + // ----- Close the zip file |
|
1915 | 1915 | $this->_closeFd(); |
1916 | 1916 | |
1917 | - return $v_result; |
|
1918 | - } |
|
1917 | + return $v_result; |
|
1918 | + } |
|
1919 | + } |
|
1920 | + } |
|
1919 | 1921 | } |
1920 | - } |
|
1921 | - } |
|
1922 | 1922 | |
1923 | 1923 | // ----- Close the zip file |
1924 | 1924 | $this->_closeFd(); |
1925 | 1925 | |
1926 | 1926 | // ----- Return |
1927 | 1927 | return $v_result; |
1928 | - } |
|
1929 | - // --------------------------------------------------------------------------- |
|
1930 | - |
|
1931 | - // --------------------------------------------------------------------------- |
|
1932 | - // Function : _extractFile() |
|
1933 | - // Description : |
|
1934 | - // Parameters : |
|
1935 | - // Return Values : |
|
1936 | - // --------------------------------------------------------------------------- |
|
1937 | - /** |
|
1938 | - * Archive_Zip::_extractFile() |
|
1939 | - * |
|
1940 | - * { Description } |
|
1941 | - * |
|
1942 | - */ |
|
1943 | - public function _extractFile(&$p_entry, $p_path, $p_remove_path, $p_remove_all_path, &$p_params) |
|
1944 | - { |
|
1945 | - $v_result=1; |
|
1928 | + } |
|
1929 | + // --------------------------------------------------------------------------- |
|
1930 | + |
|
1931 | + // --------------------------------------------------------------------------- |
|
1932 | + // Function : _extractFile() |
|
1933 | + // Description : |
|
1934 | + // Parameters : |
|
1935 | + // Return Values : |
|
1936 | + // --------------------------------------------------------------------------- |
|
1937 | + /** |
|
1938 | + * Archive_Zip::_extractFile() |
|
1939 | + * |
|
1940 | + * { Description } |
|
1941 | + * |
|
1942 | + */ |
|
1943 | + public function _extractFile(&$p_entry, $p_path, $p_remove_path, $p_remove_all_path, &$p_params) |
|
1944 | + { |
|
1945 | + $v_result=1; |
|
1946 | 1946 | |
1947 | 1947 | // ----- Read the file header |
1948 | 1948 | if (($v_result = $this->_readFileHeader($v_header)) != 1) { |
1949 | 1949 | // ----- Return |
1950 | - return $v_result; |
|
1950 | + return $v_result; |
|
1951 | 1951 | } |
1952 | 1952 | |
1953 | 1953 | |
@@ -1963,14 +1963,14 @@ discard block |
||
1963 | 1963 | // ----- Look for path to remove |
1964 | 1964 | elseif ($p_remove_path != '') { |
1965 | 1965 | //if (strcmp($p_remove_path, $p_entry['filename'])==0) |
1966 | - if ($this->_tool_PathInclusion($p_remove_path, $p_entry['filename']) == 2) { |
|
1966 | + if ($this->_tool_PathInclusion($p_remove_path, $p_entry['filename']) == 2) { |
|
1967 | 1967 | |
1968 | 1968 | // ----- Change the file status |
1969 | 1969 | $p_entry['status'] = 'filtered'; |
1970 | 1970 | |
1971 | 1971 | // ----- Return |
1972 | 1972 | return $v_result; |
1973 | - } |
|
1973 | + } |
|
1974 | 1974 | |
1975 | 1975 | $p_remove_path_size = strlen($p_remove_path); |
1976 | 1976 | if (substr($p_entry['filename'], 0, $p_remove_path_size) == $p_remove_path) { |
@@ -1989,23 +1989,23 @@ discard block |
||
1989 | 1989 | if (isset($p_params[ARCHIVE_ZIP_PARAM_PRE_EXTRACT]) |
1990 | 1990 | && ($p_params[ARCHIVE_ZIP_PARAM_PRE_EXTRACT] != '')) { |
1991 | 1991 | |
1992 | - // ----- Generate a local information |
|
1993 | - $v_local_header = array(); |
|
1992 | + // ----- Generate a local information |
|
1993 | + $v_local_header = array(); |
|
1994 | 1994 | $this->_convertHeader2FileInfo($p_entry, $v_local_header); |
1995 | 1995 | |
1996 | - // ----- Call the callback |
|
1997 | - // Here I do not use call_user_func() because I need to send a reference to the |
|
1998 | - // header. |
|
1999 | - eval('$v_result = '.$p_params[ARCHIVE_ZIP_PARAM_PRE_EXTRACT].'(ARCHIVE_ZIP_PARAM_PRE_EXTRACT, $v_local_header);'); |
|
1996 | + // ----- Call the callback |
|
1997 | + // Here I do not use call_user_func() because I need to send a reference to the |
|
1998 | + // header. |
|
1999 | + eval('$v_result = '.$p_params[ARCHIVE_ZIP_PARAM_PRE_EXTRACT].'(ARCHIVE_ZIP_PARAM_PRE_EXTRACT, $v_local_header);'); |
|
2000 | 2000 | if ($v_result == 0) { |
2001 | 2001 | // ----- Change the file status |
2002 | 2002 | $p_entry['status'] = 'skipped'; |
2003 | 2003 | $v_result = 1; |
2004 | 2004 | } |
2005 | 2005 | |
2006 | - // ----- Update the informations |
|
2007 | - // Only some fields can be modified |
|
2008 | - $p_entry['filename'] = $v_local_header['filename']; |
|
2006 | + // ----- Update the informations |
|
2007 | + // Only some fields can be modified |
|
2008 | + $p_entry['filename'] = $v_local_header['filename']; |
|
2009 | 2009 | } |
2010 | 2010 | |
2011 | 2011 | // ----- Trace |
@@ -2016,34 +2016,34 @@ discard block |
||
2016 | 2016 | // ----- Look for specific actions while the file exist |
2017 | 2017 | if (file_exists($p_entry['filename'])) { |
2018 | 2018 | |
2019 | - // ----- Look if file is a directory |
|
2020 | - if (is_dir($p_entry['filename'])) { |
|
2019 | + // ----- Look if file is a directory |
|
2020 | + if (is_dir($p_entry['filename'])) { |
|
2021 | 2021 | |
2022 | 2022 | // ----- Change the file status |
2023 | 2023 | $p_entry['status'] = 'already_a_directory'; |
2024 | 2024 | |
2025 | 2025 | // ----- Return |
2026 | 2026 | //return $v_result; |
2027 | - } |
|
2028 | - // ----- Look if file is write protected |
|
2029 | - elseif (!is_writable($p_entry['filename'])) { |
|
2027 | + } |
|
2028 | + // ----- Look if file is write protected |
|
2029 | + elseif (!is_writable($p_entry['filename'])) { |
|
2030 | 2030 | |
2031 | 2031 | // ----- Change the file status |
2032 | 2032 | $p_entry['status'] = 'write_protected'; |
2033 | 2033 | |
2034 | 2034 | // ----- Return |
2035 | 2035 | //return $v_result; |
2036 | - } |
|
2036 | + } |
|
2037 | 2037 | |
2038 | - // ----- Look if the extracted file is older |
|
2039 | - elseif (filemtime($p_entry['filename']) > $p_entry['mtime']) { |
|
2038 | + // ----- Look if the extracted file is older |
|
2039 | + elseif (filemtime($p_entry['filename']) > $p_entry['mtime']) { |
|
2040 | 2040 | |
2041 | 2041 | // ----- Change the file status |
2042 | 2042 | $p_entry['status'] = 'newer_exist'; |
2043 | 2043 | |
2044 | 2044 | // ----- Return |
2045 | 2045 | //return $v_result; |
2046 | - } |
|
2046 | + } |
|
2047 | 2047 | } |
2048 | 2048 | |
2049 | 2049 | // ----- Check the directory availability and create it if necessary |
@@ -2071,25 +2071,25 @@ discard block |
||
2071 | 2071 | // ----- Look if extraction should be done |
2072 | 2072 | if ($p_entry['status'] == 'ok') { |
2073 | 2073 | |
2074 | - // ----- Do the extraction (if not a folder) |
|
2075 | - if (!(($p_entry['external']&0x00000010)==0x00000010)) { |
|
2074 | + // ----- Do the extraction (if not a folder) |
|
2075 | + if (!(($p_entry['external']&0x00000010)==0x00000010)) { |
|
2076 | 2076 | |
2077 | 2077 | // ----- Look for not compressed file |
2078 | 2078 | if ($p_entry['compressed_size'] == $p_entry['size']) { |
2079 | 2079 | |
2080 | - // ----- Opening destination file |
|
2081 | - if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { |
|
2080 | + // ----- Opening destination file |
|
2081 | + if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { |
|
2082 | 2082 | |
2083 | 2083 | // ----- Change the file status |
2084 | 2084 | $p_entry['status'] = 'write_error'; |
2085 | 2085 | |
2086 | 2086 | // ----- Return |
2087 | 2087 | return $v_result; |
2088 | - } |
|
2088 | + } |
|
2089 | 2089 | |
2090 | 2090 | |
2091 | - // ----- Read the file by ARCHIVE_ZIP_READ_BLOCK_SIZE octets blocks |
|
2092 | - $v_size = $p_entry['compressed_size']; |
|
2091 | + // ----- Read the file by ARCHIVE_ZIP_READ_BLOCK_SIZE octets blocks |
|
2092 | + $v_size = $p_entry['compressed_size']; |
|
2093 | 2093 | while ($v_size != 0) { |
2094 | 2094 | $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE ? $v_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
2095 | 2095 | $v_buffer = fread($this->_zip_fd, $v_read_size); |
@@ -2098,93 +2098,93 @@ discard block |
||
2098 | 2098 | $v_size -= $v_read_size; |
2099 | 2099 | } |
2100 | 2100 | |
2101 | - // ----- Closing the destination file |
|
2102 | - fclose($v_dest_file); |
|
2101 | + // ----- Closing the destination file |
|
2102 | + fclose($v_dest_file); |
|
2103 | 2103 | |
2104 | - // ----- Change the file mtime |
|
2105 | - touch($p_entry['filename'], $p_entry['mtime']); |
|
2104 | + // ----- Change the file mtime |
|
2105 | + touch($p_entry['filename'], $p_entry['mtime']); |
|
2106 | 2106 | } else { |
2107 | 2107 | // ----- Trace |
2108 | 2108 | |
2109 | - // ----- Opening destination file |
|
2110 | - if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { |
|
2109 | + // ----- Opening destination file |
|
2110 | + if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { |
|
2111 | 2111 | |
2112 | 2112 | // ----- Change the file status |
2113 | 2113 | $p_entry['status'] = 'write_error'; |
2114 | 2114 | |
2115 | - return $v_result; |
|
2116 | - } |
|
2115 | + return $v_result; |
|
2116 | + } |
|
2117 | 2117 | |
2118 | 2118 | |
2119 | - // ----- Read the compressed file in a buffer (one shot) |
|
2120 | - $v_buffer = @fread($this->_zip_fd, $p_entry['compressed_size']); |
|
2119 | + // ----- Read the compressed file in a buffer (one shot) |
|
2120 | + $v_buffer = @fread($this->_zip_fd, $p_entry['compressed_size']); |
|
2121 | 2121 | |
2122 | - // ----- Decompress the file |
|
2123 | - $v_file_content = gzinflate($v_buffer); |
|
2122 | + // ----- Decompress the file |
|
2123 | + $v_file_content = gzinflate($v_buffer); |
|
2124 | 2124 | unset($v_buffer); |
2125 | 2125 | |
2126 | - // ----- Write the uncompressed data |
|
2127 | - @fwrite($v_dest_file, $v_file_content, $p_entry['size']); |
|
2126 | + // ----- Write the uncompressed data |
|
2127 | + @fwrite($v_dest_file, $v_file_content, $p_entry['size']); |
|
2128 | 2128 | unset($v_file_content); |
2129 | 2129 | |
2130 | - // ----- Closing the destination file |
|
2131 | - @fclose($v_dest_file); |
|
2130 | + // ----- Closing the destination file |
|
2131 | + @fclose($v_dest_file); |
|
2132 | 2132 | |
2133 | - // ----- Change the file mtime |
|
2134 | - touch($p_entry['filename'], $p_entry['mtime']); |
|
2133 | + // ----- Change the file mtime |
|
2134 | + touch($p_entry['filename'], $p_entry['mtime']); |
|
2135 | 2135 | } |
2136 | 2136 | |
2137 | 2137 | // ----- Look for chmod option |
2138 | 2138 | if (isset($p_params[ARCHIVE_ZIP_PARAM_SET_CHMOD]) |
2139 | 2139 | && ($p_params[ARCHIVE_ZIP_PARAM_SET_CHMOD] != 0)) { |
2140 | 2140 | |
2141 | - // ----- Change the mode of the file |
|
2142 | - chmod($p_entry['filename'], $p_params[ARCHIVE_ZIP_PARAM_SET_CHMOD]); |
|
2141 | + // ----- Change the mode of the file |
|
2142 | + chmod($p_entry['filename'], $p_params[ARCHIVE_ZIP_PARAM_SET_CHMOD]); |
|
2143 | + } |
|
2143 | 2144 | } |
2144 | - } |
|
2145 | 2145 | } |
2146 | 2146 | |
2147 | 2147 | // ----- Look for post-extract callback |
2148 | 2148 | if (isset($p_params[ARCHIVE_ZIP_PARAM_POST_EXTRACT]) |
2149 | 2149 | && ($p_params[ARCHIVE_ZIP_PARAM_POST_EXTRACT] != '')) { |
2150 | 2150 | |
2151 | - // ----- Generate a local information |
|
2152 | - $v_local_header = array(); |
|
2151 | + // ----- Generate a local information |
|
2152 | + $v_local_header = array(); |
|
2153 | 2153 | $this->_convertHeader2FileInfo($p_entry, $v_local_header); |
2154 | 2154 | |
2155 | - // ----- Call the callback |
|
2156 | - // Here I do not use call_user_func() because I need to send a reference to the |
|
2157 | - // header. |
|
2158 | - eval('$v_result = '.$p_params[ARCHIVE_ZIP_PARAM_POST_EXTRACT].'(ARCHIVE_ZIP_PARAM_POST_EXTRACT, $v_local_header);'); |
|
2155 | + // ----- Call the callback |
|
2156 | + // Here I do not use call_user_func() because I need to send a reference to the |
|
2157 | + // header. |
|
2158 | + eval('$v_result = '.$p_params[ARCHIVE_ZIP_PARAM_POST_EXTRACT].'(ARCHIVE_ZIP_PARAM_POST_EXTRACT, $v_local_header);'); |
|
2159 | 2159 | } |
2160 | 2160 | |
2161 | 2161 | // ----- Return |
2162 | 2162 | return $v_result; |
2163 | - } |
|
2164 | - // --------------------------------------------------------------------------- |
|
2165 | - |
|
2166 | - // --------------------------------------------------------------------------- |
|
2167 | - // Function : _extractFileAsString() |
|
2168 | - // Description : |
|
2169 | - // Parameters : |
|
2170 | - // Return Values : |
|
2171 | - // --------------------------------------------------------------------------- |
|
2172 | - /** |
|
2173 | - * Archive_Zip::_extractFileAsString() |
|
2174 | - * |
|
2175 | - * { Description } |
|
2176 | - * |
|
2177 | - */ |
|
2178 | - public function _extractFileAsString(&$p_entry, &$p_string) |
|
2179 | - { |
|
2180 | - $v_result=1; |
|
2163 | + } |
|
2164 | + // --------------------------------------------------------------------------- |
|
2165 | + |
|
2166 | + // --------------------------------------------------------------------------- |
|
2167 | + // Function : _extractFileAsString() |
|
2168 | + // Description : |
|
2169 | + // Parameters : |
|
2170 | + // Return Values : |
|
2171 | + // --------------------------------------------------------------------------- |
|
2172 | + /** |
|
2173 | + * Archive_Zip::_extractFileAsString() |
|
2174 | + * |
|
2175 | + * { Description } |
|
2176 | + * |
|
2177 | + */ |
|
2178 | + public function _extractFileAsString(&$p_entry, &$p_string) |
|
2179 | + { |
|
2180 | + $v_result=1; |
|
2181 | 2181 | |
2182 | 2182 | // ----- Read the file header |
2183 | 2183 | $v_header = array(); |
2184 | - if (($v_result = $this->_readFileHeader($v_header)) != 1) { |
|
2185 | - // ----- Return |
|
2186 | - return $v_result; |
|
2187 | - } |
|
2184 | + if (($v_result = $this->_readFileHeader($v_header)) != 1) { |
|
2185 | + // ----- Return |
|
2186 | + return $v_result; |
|
2187 | + } |
|
2188 | 2188 | |
2189 | 2189 | |
2190 | 2190 | // ----- Check that the file header is coherent with $p_entry info |
@@ -2195,59 +2195,59 @@ discard block |
||
2195 | 2195 | // ----- Do the extraction (if not a folder) |
2196 | 2196 | if (!(($p_entry['external']&0x00000010)==0x00000010)) { |
2197 | 2197 | // ----- Look for not compressed file |
2198 | - if ($p_entry['compressed_size'] == $p_entry['size']) { |
|
2199 | - // ----- Trace |
|
2198 | + if ($p_entry['compressed_size'] == $p_entry['size']) { |
|
2199 | + // ----- Trace |
|
2200 | 2200 | |
2201 | 2201 | // ----- Reading the file |
2202 | 2202 | $p_string = fread($this->_zip_fd, $p_entry['compressed_size']); |
2203 | - } else { |
|
2204 | - // ----- Trace |
|
2203 | + } else { |
|
2204 | + // ----- Trace |
|
2205 | 2205 | |
2206 | 2206 | // ----- Reading the file |
2207 | 2207 | $v_data = fread($this->_zip_fd, $p_entry['compressed_size']); |
2208 | 2208 | |
2209 | 2209 | // ----- Decompress the file |
2210 | 2210 | $p_string = gzinflate($v_data); |
2211 | - } |
|
2211 | + } |
|
2212 | 2212 | |
2213 | - // ----- Trace |
|
2213 | + // ----- Trace |
|
2214 | 2214 | } else { |
2215 | 2215 | // TBC : error : can not extract a folder in a string |
2216 | 2216 | } |
2217 | 2217 | |
2218 | 2218 | // ----- Return |
2219 | 2219 | return $v_result; |
2220 | - } |
|
2221 | - // --------------------------------------------------------------------------- |
|
2222 | - |
|
2223 | - // --------------------------------------------------------------------------- |
|
2224 | - // Function : _readFileHeader() |
|
2225 | - // Description : |
|
2226 | - // Parameters : |
|
2227 | - // Return Values : |
|
2228 | - // --------------------------------------------------------------------------- |
|
2229 | - /** |
|
2230 | - * Archive_Zip::_readFileHeader() |
|
2231 | - * |
|
2232 | - * { Description } |
|
2233 | - * |
|
2234 | - */ |
|
2235 | - public function _readFileHeader(&$p_header) |
|
2236 | - { |
|
2237 | - $v_result=1; |
|
2220 | + } |
|
2221 | + // --------------------------------------------------------------------------- |
|
2222 | + |
|
2223 | + // --------------------------------------------------------------------------- |
|
2224 | + // Function : _readFileHeader() |
|
2225 | + // Description : |
|
2226 | + // Parameters : |
|
2227 | + // Return Values : |
|
2228 | + // --------------------------------------------------------------------------- |
|
2229 | + /** |
|
2230 | + * Archive_Zip::_readFileHeader() |
|
2231 | + * |
|
2232 | + * { Description } |
|
2233 | + * |
|
2234 | + */ |
|
2235 | + public function _readFileHeader(&$p_header) |
|
2236 | + { |
|
2237 | + $v_result=1; |
|
2238 | 2238 | |
2239 | 2239 | // ----- Read the 4 bytes signature |
2240 | 2240 | $v_binary_data = @fread($this->_zip_fd, 4); |
2241 | - $v_data = unpack('Vid', $v_binary_data); |
|
2241 | + $v_data = unpack('Vid', $v_binary_data); |
|
2242 | 2242 | |
2243 | 2243 | // ----- Check signature |
2244 | 2244 | if ($v_data['id'] != 0x04034b50) { |
2245 | 2245 | |
2246 | - // ----- Error log |
|
2247 | - $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); |
|
2246 | + // ----- Error log |
|
2247 | + $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); |
|
2248 | 2248 | |
2249 | - // ----- Return |
|
2250 | - return Archive_Zip::errorCode(); |
|
2249 | + // ----- Return |
|
2250 | + return Archive_Zip::errorCode(); |
|
2251 | 2251 | } |
2252 | 2252 | |
2253 | 2253 | // ----- Read the first 42 bytes of the header |
@@ -2258,11 +2258,11 @@ discard block |
||
2258 | 2258 | $p_header['filename'] = ''; |
2259 | 2259 | $p_header['status'] = 'invalid_header'; |
2260 | 2260 | |
2261 | - // ----- Error log |
|
2262 | - $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, 'Invalid block size : ' . strlen($v_binary_data)); |
|
2261 | + // ----- Error log |
|
2262 | + $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, 'Invalid block size : ' . strlen($v_binary_data)); |
|
2263 | 2263 | |
2264 | - // ----- Return |
|
2265 | - return Archive_Zip::errorCode(); |
|
2264 | + // ----- Return |
|
2265 | + return Archive_Zip::errorCode(); |
|
2266 | 2266 | } |
2267 | 2267 | |
2268 | 2268 | // ----- Extract the values |
@@ -2280,30 +2280,30 @@ discard block |
||
2280 | 2280 | |
2281 | 2281 | // ----- Extract properties |
2282 | 2282 | $p_header['compression'] = $v_data['compression']; |
2283 | - $p_header['size'] = $v_data['size']; |
|
2284 | - $p_header['compressed_size'] = $v_data['compressed_size']; |
|
2285 | - $p_header['crc'] = $v_data['crc']; |
|
2286 | - $p_header['flag'] = $v_data['flag']; |
|
2283 | + $p_header['size'] = $v_data['size']; |
|
2284 | + $p_header['compressed_size'] = $v_data['compressed_size']; |
|
2285 | + $p_header['crc'] = $v_data['crc']; |
|
2286 | + $p_header['flag'] = $v_data['flag']; |
|
2287 | 2287 | |
2288 | 2288 | // ----- Recuperate date in UNIX format |
2289 | 2289 | $p_header['mdate'] = $v_data['mdate']; |
2290 | - $p_header['mtime'] = $v_data['mtime']; |
|
2291 | - if ($p_header['mdate'] && $p_header['mtime']) { |
|
2292 | - // ----- Extract time |
|
2293 | - $v_hour = ($p_header['mtime'] & 0xF800) >> 11; |
|
2294 | - $v_minute = ($p_header['mtime'] & 0x07E0) >> 5; |
|
2295 | - $v_seconde = ($p_header['mtime'] & 0x001F)*2; |
|
2296 | - |
|
2297 | - // ----- Extract date |
|
2298 | - $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; |
|
2299 | - $v_month = ($p_header['mdate'] & 0x01E0) >> 5; |
|
2300 | - $v_day = $p_header['mdate'] & 0x001F; |
|
2301 | - |
|
2302 | - // ----- Get UNIX date format |
|
2303 | - $p_header['mtime'] = mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); |
|
2304 | - } else { |
|
2305 | - $p_header['mtime'] = time(); |
|
2306 | - } |
|
2290 | + $p_header['mtime'] = $v_data['mtime']; |
|
2291 | + if ($p_header['mdate'] && $p_header['mtime']) { |
|
2292 | + // ----- Extract time |
|
2293 | + $v_hour = ($p_header['mtime'] & 0xF800) >> 11; |
|
2294 | + $v_minute = ($p_header['mtime'] & 0x07E0) >> 5; |
|
2295 | + $v_seconde = ($p_header['mtime'] & 0x001F)*2; |
|
2296 | + |
|
2297 | + // ----- Extract date |
|
2298 | + $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; |
|
2299 | + $v_month = ($p_header['mdate'] & 0x01E0) >> 5; |
|
2300 | + $v_day = $p_header['mdate'] & 0x001F; |
|
2301 | + |
|
2302 | + // ----- Get UNIX date format |
|
2303 | + $p_header['mtime'] = mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); |
|
2304 | + } else { |
|
2305 | + $p_header['mtime'] = time(); |
|
2306 | + } |
|
2307 | 2307 | |
2308 | 2308 | // ----- Other informations |
2309 | 2309 | |
@@ -2319,37 +2319,37 @@ discard block |
||
2319 | 2319 | |
2320 | 2320 | // ----- Return |
2321 | 2321 | return $v_result; |
2322 | - } |
|
2323 | - // --------------------------------------------------------------------------- |
|
2324 | - |
|
2325 | - // --------------------------------------------------------------------------- |
|
2326 | - // Function : _readCentralFileHeader() |
|
2327 | - // Description : |
|
2328 | - // Parameters : |
|
2329 | - // Return Values : |
|
2330 | - // --------------------------------------------------------------------------- |
|
2331 | - /** |
|
2332 | - * Archive_Zip::_readCentralFileHeader() |
|
2333 | - * |
|
2334 | - * { Description } |
|
2335 | - * |
|
2336 | - */ |
|
2337 | - public function _readCentralFileHeader(&$p_header) |
|
2338 | - { |
|
2339 | - $v_result=1; |
|
2322 | + } |
|
2323 | + // --------------------------------------------------------------------------- |
|
2324 | + |
|
2325 | + // --------------------------------------------------------------------------- |
|
2326 | + // Function : _readCentralFileHeader() |
|
2327 | + // Description : |
|
2328 | + // Parameters : |
|
2329 | + // Return Values : |
|
2330 | + // --------------------------------------------------------------------------- |
|
2331 | + /** |
|
2332 | + * Archive_Zip::_readCentralFileHeader() |
|
2333 | + * |
|
2334 | + * { Description } |
|
2335 | + * |
|
2336 | + */ |
|
2337 | + public function _readCentralFileHeader(&$p_header) |
|
2338 | + { |
|
2339 | + $v_result=1; |
|
2340 | 2340 | |
2341 | 2341 | // ----- Read the 4 bytes signature |
2342 | 2342 | $v_binary_data = @fread($this->_zip_fd, 4); |
2343 | - $v_data = unpack('Vid', $v_binary_data); |
|
2343 | + $v_data = unpack('Vid', $v_binary_data); |
|
2344 | 2344 | |
2345 | 2345 | // ----- Check signature |
2346 | 2346 | if ($v_data['id'] != 0x02014b50) { |
2347 | 2347 | |
2348 | - // ----- Error log |
|
2349 | - $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); |
|
2348 | + // ----- Error log |
|
2349 | + $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); |
|
2350 | 2350 | |
2351 | - // ----- Return |
|
2352 | - return Archive_Zip::errorCode(); |
|
2351 | + // ----- Return |
|
2352 | + return Archive_Zip::errorCode(); |
|
2353 | 2353 | } |
2354 | 2354 | |
2355 | 2355 | // ----- Read the first 42 bytes of the header |
@@ -2360,11 +2360,11 @@ discard block |
||
2360 | 2360 | $p_header['filename'] = ''; |
2361 | 2361 | $p_header['status'] = 'invalid_header'; |
2362 | 2362 | |
2363 | - // ----- Error log |
|
2364 | - $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, 'Invalid block size : ' . strlen($v_binary_data)); |
|
2363 | + // ----- Error log |
|
2364 | + $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, 'Invalid block size : ' . strlen($v_binary_data)); |
|
2365 | 2365 | |
2366 | - // ----- Return |
|
2367 | - return Archive_Zip::errorCode(); |
|
2366 | + // ----- Return |
|
2367 | + return Archive_Zip::errorCode(); |
|
2368 | 2368 | } |
2369 | 2369 | |
2370 | 2370 | // ----- Extract the values |
@@ -2396,17 +2396,17 @@ discard block |
||
2396 | 2396 | // ----- Recuperate date in UNIX format |
2397 | 2397 | if ($p_header['mdate'] && $p_header['mtime']) { |
2398 | 2398 | // ----- Extract time |
2399 | - $v_hour = ($p_header['mtime'] & 0xF800) >> 11; |
|
2399 | + $v_hour = ($p_header['mtime'] & 0xF800) >> 11; |
|
2400 | 2400 | $v_minute = ($p_header['mtime'] & 0x07E0) >> 5; |
2401 | 2401 | $v_seconde = ($p_header['mtime'] & 0x001F)*2; |
2402 | 2402 | |
2403 | - // ----- Extract date |
|
2404 | - $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; |
|
2403 | + // ----- Extract date |
|
2404 | + $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; |
|
2405 | 2405 | $v_month = ($p_header['mdate'] & 0x01E0) >> 5; |
2406 | 2406 | $v_day = $p_header['mdate'] & 0x001F; |
2407 | 2407 | |
2408 | - // ----- Get UNIX date format |
|
2409 | - $p_header['mtime'] = mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); |
|
2408 | + // ----- Get UNIX date format |
|
2409 | + $p_header['mtime'] = mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); |
|
2410 | 2410 | } else { |
2411 | 2411 | $p_header['mtime'] = time(); |
2412 | 2412 | } |
@@ -2425,76 +2425,76 @@ discard block |
||
2425 | 2425 | |
2426 | 2426 | // ----- Return |
2427 | 2427 | return $v_result; |
2428 | - } |
|
2429 | - // --------------------------------------------------------------------------- |
|
2430 | - |
|
2431 | - // --------------------------------------------------------------------------- |
|
2432 | - // Function : _readEndCentralDir() |
|
2433 | - // Description : |
|
2434 | - // Parameters : |
|
2435 | - // Return Values : |
|
2436 | - // --------------------------------------------------------------------------- |
|
2437 | - /** |
|
2438 | - * Archive_Zip::_readEndCentralDir() |
|
2439 | - * |
|
2440 | - * { Description } |
|
2441 | - * |
|
2442 | - */ |
|
2443 | - public function _readEndCentralDir(&$p_central_dir) |
|
2444 | - { |
|
2445 | - $v_result=1; |
|
2428 | + } |
|
2429 | + // --------------------------------------------------------------------------- |
|
2430 | + |
|
2431 | + // --------------------------------------------------------------------------- |
|
2432 | + // Function : _readEndCentralDir() |
|
2433 | + // Description : |
|
2434 | + // Parameters : |
|
2435 | + // Return Values : |
|
2436 | + // --------------------------------------------------------------------------- |
|
2437 | + /** |
|
2438 | + * Archive_Zip::_readEndCentralDir() |
|
2439 | + * |
|
2440 | + * { Description } |
|
2441 | + * |
|
2442 | + */ |
|
2443 | + public function _readEndCentralDir(&$p_central_dir) |
|
2444 | + { |
|
2445 | + $v_result=1; |
|
2446 | 2446 | |
2447 | 2447 | // ----- Go to the end of the zip file |
2448 | 2448 | $v_size = filesize($this->_zipname); |
2449 | - @fseek($this->_zip_fd, $v_size); |
|
2450 | - if (@ftell($this->_zip_fd) != $v_size) { |
|
2451 | - $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, |
|
2452 | - 'Unable to go to the end of the archive \'' |
|
2453 | - .$this->_zipname.'\''); |
|
2454 | - return Archive_Zip::errorCode(); |
|
2455 | - } |
|
2449 | + @fseek($this->_zip_fd, $v_size); |
|
2450 | + if (@ftell($this->_zip_fd) != $v_size) { |
|
2451 | + $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, |
|
2452 | + 'Unable to go to the end of the archive \'' |
|
2453 | + .$this->_zipname.'\''); |
|
2454 | + return Archive_Zip::errorCode(); |
|
2455 | + } |
|
2456 | 2456 | |
2457 | 2457 | // ----- First try : look if this is an archive with no commentaries |
2458 | 2458 | // (most of the time) |
2459 | 2459 | // in this case the end of central dir is at 22 bytes of the file end |
2460 | 2460 | $v_found = 0; |
2461 | - if ($v_size > 26) { |
|
2462 | - @fseek($this->_zip_fd, $v_size-22); |
|
2463 | - if (($v_pos = @ftell($this->_zip_fd)) != ($v_size-22)) { |
|
2464 | - $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, |
|
2465 | - 'Unable to seek back to the middle of the archive \'' |
|
2466 | - .$this->_zipname.'\''); |
|
2467 | - return Archive_Zip::errorCode(); |
|
2468 | - } |
|
2469 | - |
|
2470 | - // ----- Read for bytes |
|
2471 | - $v_binary_data = @fread($this->_zip_fd, 4); |
|
2472 | - $v_data = unpack('Vid', $v_binary_data); |
|
2473 | - |
|
2474 | - // ----- Check signature |
|
2475 | - if ($v_data['id'] == 0x06054b50) { |
|
2476 | - $v_found = 1; |
|
2477 | - } |
|
2478 | - |
|
2479 | - $v_pos = ftell($this->_zip_fd); |
|
2480 | - } |
|
2461 | + if ($v_size > 26) { |
|
2462 | + @fseek($this->_zip_fd, $v_size-22); |
|
2463 | + if (($v_pos = @ftell($this->_zip_fd)) != ($v_size-22)) { |
|
2464 | + $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, |
|
2465 | + 'Unable to seek back to the middle of the archive \'' |
|
2466 | + .$this->_zipname.'\''); |
|
2467 | + return Archive_Zip::errorCode(); |
|
2468 | + } |
|
2469 | + |
|
2470 | + // ----- Read for bytes |
|
2471 | + $v_binary_data = @fread($this->_zip_fd, 4); |
|
2472 | + $v_data = unpack('Vid', $v_binary_data); |
|
2473 | + |
|
2474 | + // ----- Check signature |
|
2475 | + if ($v_data['id'] == 0x06054b50) { |
|
2476 | + $v_found = 1; |
|
2477 | + } |
|
2478 | + |
|
2479 | + $v_pos = ftell($this->_zip_fd); |
|
2480 | + } |
|
2481 | 2481 | |
2482 | 2482 | // ----- Go back to the maximum possible size of the Central Dir End Record |
2483 | 2483 | if (!$v_found) { |
2484 | 2484 | $v_maximum_size = 65557; // 0xFFFF + 22; |
2485 | - if ($v_maximum_size > $v_size) { |
|
2486 | - $v_maximum_size = $v_size; |
|
2487 | - } |
|
2485 | + if ($v_maximum_size > $v_size) { |
|
2486 | + $v_maximum_size = $v_size; |
|
2487 | + } |
|
2488 | 2488 | @fseek($this->_zip_fd, $v_size-$v_maximum_size); |
2489 | 2489 | if (@ftell($this->_zip_fd) != ($v_size-$v_maximum_size)) { |
2490 | 2490 | $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, |
2491 | - 'Unable to seek back to the middle of the archive \'' |
|
2492 | - .$this->_zipname.'\''); |
|
2491 | + 'Unable to seek back to the middle of the archive \'' |
|
2492 | + .$this->_zipname.'\''); |
|
2493 | 2493 | return Archive_Zip::errorCode(); |
2494 | 2494 | } |
2495 | 2495 | |
2496 | - // ----- Read byte per byte in order to find the signature |
|
2497 | - $v_pos = ftell($this->_zip_fd); |
|
2496 | + // ----- Read byte per byte in order to find the signature |
|
2497 | + $v_pos = ftell($this->_zip_fd); |
|
2498 | 2498 | $v_bytes = 0x00000000; |
2499 | 2499 | while ($v_pos < $v_size) { |
2500 | 2500 | // ----- Read a byte |
@@ -2512,11 +2512,11 @@ discard block |
||
2512 | 2512 | $v_pos++; |
2513 | 2513 | } |
2514 | 2514 | |
2515 | - // ----- Look if not found end of central dir |
|
2516 | - if ($v_pos == $v_size) { |
|
2517 | - $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, 'Unable to find End of Central Dir Record signature'); |
|
2518 | - return Archive_Zip::errorCode(); |
|
2519 | - } |
|
2515 | + // ----- Look if not found end of central dir |
|
2516 | + if ($v_pos == $v_size) { |
|
2517 | + $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, 'Unable to find End of Central Dir Record signature'); |
|
2518 | + return Archive_Zip::errorCode(); |
|
2519 | + } |
|
2520 | 2520 | } |
2521 | 2521 | |
2522 | 2522 | // ----- Read the first 18 bytes of the header |
@@ -2525,8 +2525,8 @@ discard block |
||
2525 | 2525 | // ----- Look for invalid block size |
2526 | 2526 | if (strlen($v_binary_data) != 18) { |
2527 | 2527 | $this->_errorLog(ARCHIVE_ZIP_ERR_BAD_FORMAT, |
2528 | - 'Invalid End of Central Dir Record size : ' |
|
2529 | - .strlen($v_binary_data)); |
|
2528 | + 'Invalid End of Central Dir Record size : ' |
|
2529 | + .strlen($v_binary_data)); |
|
2530 | 2530 | return Archive_Zip::errorCode(); |
2531 | 2531 | } |
2532 | 2532 | |
@@ -2546,47 +2546,47 @@ discard block |
||
2546 | 2546 | $p_central_dir['comment'] = ''; |
2547 | 2547 | } |
2548 | 2548 | |
2549 | - $p_central_dir['entries'] = $v_data['entries']; |
|
2550 | - $p_central_dir['disk_entries'] = $v_data['disk_entries']; |
|
2551 | - $p_central_dir['offset'] = $v_data['offset']; |
|
2552 | - $p_central_dir['size'] = $v_data['size']; |
|
2553 | - $p_central_dir['disk'] = $v_data['disk']; |
|
2554 | - $p_central_dir['disk_start'] = $v_data['disk_start']; |
|
2549 | + $p_central_dir['entries'] = $v_data['entries']; |
|
2550 | + $p_central_dir['disk_entries'] = $v_data['disk_entries']; |
|
2551 | + $p_central_dir['offset'] = $v_data['offset']; |
|
2552 | + $p_central_dir['size'] = $v_data['size']; |
|
2553 | + $p_central_dir['disk'] = $v_data['disk']; |
|
2554 | + $p_central_dir['disk_start'] = $v_data['disk_start']; |
|
2555 | 2555 | |
2556 | 2556 | // ----- Return |
2557 | 2557 | return $v_result; |
2558 | - } |
|
2559 | - // --------------------------------------------------------------------------- |
|
2560 | - |
|
2561 | - // --------------------------------------------------------------------------- |
|
2562 | - // Function : _deleteByRule() |
|
2563 | - // Description : |
|
2564 | - // Parameters : |
|
2565 | - // Return Values : |
|
2566 | - // --------------------------------------------------------------------------- |
|
2567 | - /** |
|
2568 | - * Archive_Zip::_deleteByRule() |
|
2569 | - * |
|
2570 | - * { Description } |
|
2571 | - * |
|
2572 | - */ |
|
2573 | - public function _deleteByRule(&$p_result_list, &$p_params) |
|
2574 | - { |
|
2575 | - $v_result=1; |
|
2576 | - $v_list_detail = array(); |
|
2558 | + } |
|
2559 | + // --------------------------------------------------------------------------- |
|
2560 | + |
|
2561 | + // --------------------------------------------------------------------------- |
|
2562 | + // Function : _deleteByRule() |
|
2563 | + // Description : |
|
2564 | + // Parameters : |
|
2565 | + // Return Values : |
|
2566 | + // --------------------------------------------------------------------------- |
|
2567 | + /** |
|
2568 | + * Archive_Zip::_deleteByRule() |
|
2569 | + * |
|
2570 | + * { Description } |
|
2571 | + * |
|
2572 | + */ |
|
2573 | + public function _deleteByRule(&$p_result_list, &$p_params) |
|
2574 | + { |
|
2575 | + $v_result=1; |
|
2576 | + $v_list_detail = array(); |
|
2577 | 2577 | |
2578 | 2578 | // ----- Open the zip file |
2579 | 2579 | if (($v_result=$this->_openFd('rb')) != 1) { |
2580 | 2580 | // ----- Return |
2581 | - return $v_result; |
|
2581 | + return $v_result; |
|
2582 | 2582 | } |
2583 | 2583 | |
2584 | 2584 | // ----- Read the central directory informations |
2585 | 2585 | $v_central_dir = array(); |
2586 | - if (($v_result = $this->_readEndCentralDir($v_central_dir)) != 1) { |
|
2587 | - $this->_closeFd(); |
|
2588 | - return $v_result; |
|
2589 | - } |
|
2586 | + if (($v_result = $this->_readEndCentralDir($v_central_dir)) != 1) { |
|
2587 | + $this->_closeFd(); |
|
2588 | + return $v_result; |
|
2589 | + } |
|
2590 | 2590 | |
2591 | 2591 | // ----- Go to beginning of File |
2592 | 2592 | @rewind($this->_zip_fd); |
@@ -2594,123 +2594,123 @@ discard block |
||
2594 | 2594 | // ----- Scan all the files |
2595 | 2595 | // ----- Start at beginning of Central Dir |
2596 | 2596 | $v_pos_entry = $v_central_dir['offset']; |
2597 | - @rewind($this->_zip_fd); |
|
2598 | - if (@fseek($this->_zip_fd, $v_pos_entry)) { |
|
2599 | - // ----- Clean |
|
2600 | - $this->_closeFd(); |
|
2597 | + @rewind($this->_zip_fd); |
|
2598 | + if (@fseek($this->_zip_fd, $v_pos_entry)) { |
|
2599 | + // ----- Clean |
|
2600 | + $this->_closeFd(); |
|
2601 | 2601 | |
2602 | - $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_ARCHIVE_ZIP, |
|
2603 | - 'Invalid archive size'); |
|
2604 | - return Archive_Zip::errorCode(); |
|
2605 | - } |
|
2602 | + $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_ARCHIVE_ZIP, |
|
2603 | + 'Invalid archive size'); |
|
2604 | + return Archive_Zip::errorCode(); |
|
2605 | + } |
|
2606 | 2606 | |
2607 | 2607 | // ----- Read each entry |
2608 | 2608 | $v_header_list = array(); |
2609 | - $j_start = 0; |
|
2610 | - for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) { |
|
2609 | + $j_start = 0; |
|
2610 | + for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) { |
|
2611 | 2611 | |
2612 | - // ----- Read the file header |
|
2613 | - $v_header_list[$v_nb_extracted] = array(); |
|
2614 | - $v_result |
|
2612 | + // ----- Read the file header |
|
2613 | + $v_header_list[$v_nb_extracted] = array(); |
|
2614 | + $v_result |
|
2615 | 2615 | = $this->_readCentralFileHeader($v_header_list[$v_nb_extracted]); |
2616 | - if ($v_result != 1) { |
|
2617 | - // ----- Clean |
|
2616 | + if ($v_result != 1) { |
|
2617 | + // ----- Clean |
|
2618 | 2618 | $this->_closeFd(); |
2619 | 2619 | |
2620 | - return $v_result; |
|
2621 | - } |
|
2620 | + return $v_result; |
|
2621 | + } |
|
2622 | 2622 | |
2623 | - // ----- Store the index |
|
2624 | - $v_header_list[$v_nb_extracted]['index'] = $i; |
|
2623 | + // ----- Store the index |
|
2624 | + $v_header_list[$v_nb_extracted]['index'] = $i; |
|
2625 | 2625 | |
2626 | - // ----- Look for the specific extract rules |
|
2627 | - $v_found = false; |
|
2626 | + // ----- Look for the specific extract rules |
|
2627 | + $v_found = false; |
|
2628 | 2628 | |
2629 | - // ----- Look for extract by name rule |
|
2630 | - if (isset($p_params[ARCHIVE_ZIP_PARAM_BY_NAME]) |
|
2629 | + // ----- Look for extract by name rule |
|
2630 | + if (isset($p_params[ARCHIVE_ZIP_PARAM_BY_NAME]) |
|
2631 | 2631 | && ($p_params[ARCHIVE_ZIP_PARAM_BY_NAME] != 0)) { |
2632 | 2632 | |
2633 | - // ----- Look if the filename is in the list |
|
2634 | - for ($j=0; |
|
2635 | - ($j < count($p_params[ARCHIVE_ZIP_PARAM_BY_NAME])) |
|
2633 | + // ----- Look if the filename is in the list |
|
2634 | + for ($j=0; |
|
2635 | + ($j < count($p_params[ARCHIVE_ZIP_PARAM_BY_NAME])) |
|
2636 | 2636 | && (!$v_found); |
2637 | - $j++) { |
|
2637 | + $j++) { |
|
2638 | 2638 | |
2639 | - // ----- Look for a directory |
|
2640 | - if (substr($p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j], -1) == '/') { |
|
2639 | + // ----- Look for a directory |
|
2640 | + if (substr($p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j], -1) == '/') { |
|
2641 | 2641 | |
2642 | - // ----- Look if the directory is in the filename path |
|
2643 | - if ((strlen($v_header_list[$v_nb_extracted]['stored_filename']) > strlen($p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j])) |
|
2642 | + // ----- Look if the directory is in the filename path |
|
2643 | + if ((strlen($v_header_list[$v_nb_extracted]['stored_filename']) > strlen($p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j])) |
|
2644 | 2644 | && (substr($v_header_list[$v_nb_extracted]['stored_filename'], 0, strlen($p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j])) == $p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j])) { |
2645 | - $v_found = true; |
|
2646 | - } elseif ((($v_header_list[$v_nb_extracted]['external']&0x00000010)==0x00000010) /* Indicates a folder */ |
|
2645 | + $v_found = true; |
|
2646 | + } elseif ((($v_header_list[$v_nb_extracted]['external']&0x00000010)==0x00000010) /* Indicates a folder */ |
|
2647 | 2647 | && ($v_header_list[$v_nb_extracted]['stored_filename'].'/' == $p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j])) { |
2648 | - $v_found = true; |
|
2649 | - } |
|
2650 | - } |
|
2651 | - // ----- Look for a filename |
|
2652 | - elseif ($v_header_list[$v_nb_extracted]['stored_filename'] |
|
2653 | - == $p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j]) { |
|
2654 | - $v_found = true; |
|
2655 | - } |
|
2656 | - } |
|
2657 | - } |
|
2658 | - |
|
2659 | - // ----- Look for extract by ereg rule |
|
2660 | - elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_EREG]) |
|
2648 | + $v_found = true; |
|
2649 | + } |
|
2650 | + } |
|
2651 | + // ----- Look for a filename |
|
2652 | + elseif ($v_header_list[$v_nb_extracted]['stored_filename'] |
|
2653 | + == $p_params[ARCHIVE_ZIP_PARAM_BY_NAME][$j]) { |
|
2654 | + $v_found = true; |
|
2655 | + } |
|
2656 | + } |
|
2657 | + } |
|
2658 | + |
|
2659 | + // ----- Look for extract by ereg rule |
|
2660 | + elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_EREG]) |
|
2661 | 2661 | && ($p_params[ARCHIVE_ZIP_PARAM_BY_EREG] != '')) { |
2662 | - if (ereg($p_params[ARCHIVE_ZIP_PARAM_BY_EREG], |
|
2663 | - $v_header_list[$v_nb_extracted]['stored_filename'])) { |
|
2664 | - $v_found = true; |
|
2665 | - } |
|
2666 | - } |
|
2667 | - |
|
2668 | - // ----- Look for extract by preg rule |
|
2669 | - elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_PREG]) |
|
2662 | + if (ereg($p_params[ARCHIVE_ZIP_PARAM_BY_EREG], |
|
2663 | + $v_header_list[$v_nb_extracted]['stored_filename'])) { |
|
2664 | + $v_found = true; |
|
2665 | + } |
|
2666 | + } |
|
2667 | + |
|
2668 | + // ----- Look for extract by preg rule |
|
2669 | + elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_PREG]) |
|
2670 | 2670 | && ($p_params[ARCHIVE_ZIP_PARAM_BY_PREG] != '')) { |
2671 | - if (preg_match($p_params[ARCHIVE_ZIP_PARAM_BY_PREG], |
|
2672 | - $v_header_list[$v_nb_extracted]['stored_filename'])) { |
|
2673 | - $v_found = true; |
|
2674 | - } |
|
2675 | - } |
|
2676 | - |
|
2677 | - // ----- Look for extract by index rule |
|
2678 | - elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX]) |
|
2671 | + if (preg_match($p_params[ARCHIVE_ZIP_PARAM_BY_PREG], |
|
2672 | + $v_header_list[$v_nb_extracted]['stored_filename'])) { |
|
2673 | + $v_found = true; |
|
2674 | + } |
|
2675 | + } |
|
2676 | + |
|
2677 | + // ----- Look for extract by index rule |
|
2678 | + elseif (isset($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX]) |
|
2679 | 2679 | && ($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX] != 0)) { |
2680 | 2680 | |
2681 | - // ----- Look if the index is in the list |
|
2682 | - for ($j=$j_start; |
|
2683 | - ($j < count($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX])) |
|
2681 | + // ----- Look if the index is in the list |
|
2682 | + for ($j=$j_start; |
|
2683 | + ($j < count($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX])) |
|
2684 | 2684 | && (!$v_found); |
2685 | - $j++) { |
|
2686 | - if (($i>=$p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['start']) |
|
2685 | + $j++) { |
|
2686 | + if (($i>=$p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['start']) |
|
2687 | 2687 | && ($i<=$p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['end'])) { |
2688 | - $v_found = true; |
|
2689 | - } |
|
2690 | - if ($i>=$p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['end']) { |
|
2691 | - $j_start = $j+1; |
|
2692 | - } |
|
2693 | - |
|
2694 | - if ($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['start']>$i) { |
|
2695 | - break; |
|
2696 | - } |
|
2697 | - } |
|
2698 | - } |
|
2699 | - |
|
2700 | - // ----- Look for deletion |
|
2701 | - if ($v_found) { |
|
2702 | - unset($v_header_list[$v_nb_extracted]); |
|
2703 | - } else { |
|
2704 | - $v_nb_extracted++; |
|
2705 | - } |
|
2706 | - } |
|
2688 | + $v_found = true; |
|
2689 | + } |
|
2690 | + if ($i>=$p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['end']) { |
|
2691 | + $j_start = $j+1; |
|
2692 | + } |
|
2693 | + |
|
2694 | + if ($p_params[ARCHIVE_ZIP_PARAM_BY_INDEX][$j]['start']>$i) { |
|
2695 | + break; |
|
2696 | + } |
|
2697 | + } |
|
2698 | + } |
|
2699 | + |
|
2700 | + // ----- Look for deletion |
|
2701 | + if ($v_found) { |
|
2702 | + unset($v_header_list[$v_nb_extracted]); |
|
2703 | + } else { |
|
2704 | + $v_nb_extracted++; |
|
2705 | + } |
|
2706 | + } |
|
2707 | 2707 | |
2708 | 2708 | // ----- Look if something need to be deleted |
2709 | 2709 | if ($v_nb_extracted > 0) { |
2710 | 2710 | |
2711 | 2711 | // ----- Creates a temporay file |
2712 | 2712 | $v_zip_temp_name = ARCHIVE_ZIP_TEMPORARY_DIR.uniqid('archive_zip-') |
2713 | - .'.tmp'; |
|
2713 | + .'.tmp'; |
|
2714 | 2714 | |
2715 | 2715 | // ----- Creates a temporary zip archive |
2716 | 2716 | $v_temp_zip = new Archive_Zip($v_zip_temp_name); |
@@ -2735,7 +2735,7 @@ discard block |
||
2735 | 2735 | @unlink($v_zip_temp_name); |
2736 | 2736 | |
2737 | 2737 | $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_ARCHIVE_ZIP, |
2738 | - 'Invalid archive size'); |
|
2738 | + 'Invalid archive size'); |
|
2739 | 2739 | return Archive_Zip::errorCode(); |
2740 | 2740 | } |
2741 | 2741 | |
@@ -2762,8 +2762,8 @@ discard block |
||
2762 | 2762 | |
2763 | 2763 | // ----- Read/write the data block |
2764 | 2764 | $v_result = $this->_tool_CopyBlock($this->_zip_fd, |
2765 | - $v_temp_zip->_zip_fd, |
|
2766 | - $v_header_list[$i]['compressed_size']); |
|
2765 | + $v_temp_zip->_zip_fd, |
|
2766 | + $v_header_list[$i]['compressed_size']); |
|
2767 | 2767 | if ($v_result != 1) { |
2768 | 2768 | // ----- Clean |
2769 | 2769 | $this->_closeFd(); |
@@ -2792,7 +2792,7 @@ discard block |
||
2792 | 2792 | |
2793 | 2793 | // ----- Transform the header to a 'usable' info |
2794 | 2794 | $v_temp_zip->_convertHeader2FileInfo($v_header_list[$i], |
2795 | - $p_result_list[$i]); |
|
2795 | + $p_result_list[$i]); |
|
2796 | 2796 | } |
2797 | 2797 | |
2798 | 2798 | |
@@ -2804,8 +2804,8 @@ discard block |
||
2804 | 2804 | |
2805 | 2805 | // ----- Create the central dir footer |
2806 | 2806 | $v_result = $v_temp_zip->_writeCentralHeader(count($v_header_list), |
2807 | - $v_size, $v_offset, |
|
2808 | - $v_comment); |
|
2807 | + $v_size, $v_offset, |
|
2808 | + $v_comment); |
|
2809 | 2809 | if ($v_result != 1) { |
2810 | 2810 | // ----- Clean |
2811 | 2811 | unset($v_header_list); |
@@ -2835,30 +2835,30 @@ discard block |
||
2835 | 2835 | |
2836 | 2836 | // ----- Return |
2837 | 2837 | return $v_result; |
2838 | - } |
|
2839 | - // --------------------------------------------------------------------------- |
|
2840 | - |
|
2841 | - // --------------------------------------------------------------------------- |
|
2842 | - // Function : _dirCheck() |
|
2843 | - // Description : |
|
2844 | - // Check if a directory exists, if not it creates it and all the parents directory |
|
2845 | - // which may be useful. |
|
2846 | - // Parameters : |
|
2847 | - // $p_dir : Directory path to check. |
|
2848 | - // Return Values : |
|
2849 | - // 1 : OK |
|
2850 | - // -1 : Unable to create directory |
|
2851 | - // --------------------------------------------------------------------------- |
|
2852 | - /** |
|
2853 | - * Archive_Zip::_dirCheck() |
|
2854 | - * |
|
2855 | - * { Description } |
|
2856 | - * |
|
2857 | - * @param [type] $p_is_dir |
|
2858 | - */ |
|
2859 | - public function _dirCheck($p_dir, $p_is_dir=false) |
|
2860 | - { |
|
2861 | - $v_result = 1; |
|
2838 | + } |
|
2839 | + // --------------------------------------------------------------------------- |
|
2840 | + |
|
2841 | + // --------------------------------------------------------------------------- |
|
2842 | + // Function : _dirCheck() |
|
2843 | + // Description : |
|
2844 | + // Check if a directory exists, if not it creates it and all the parents directory |
|
2845 | + // which may be useful. |
|
2846 | + // Parameters : |
|
2847 | + // $p_dir : Directory path to check. |
|
2848 | + // Return Values : |
|
2849 | + // 1 : OK |
|
2850 | + // -1 : Unable to create directory |
|
2851 | + // --------------------------------------------------------------------------- |
|
2852 | + /** |
|
2853 | + * Archive_Zip::_dirCheck() |
|
2854 | + * |
|
2855 | + * { Description } |
|
2856 | + * |
|
2857 | + * @param [type] $p_is_dir |
|
2858 | + */ |
|
2859 | + public function _dirCheck($p_dir, $p_is_dir=false) |
|
2860 | + { |
|
2861 | + $v_result = 1; |
|
2862 | 2862 | |
2863 | 2863 | // ----- Remove the final '/' |
2864 | 2864 | if ($p_is_dir && (substr($p_dir, -1) == '/')) { |
@@ -2876,52 +2876,52 @@ discard block |
||
2876 | 2876 | // ----- Just a check |
2877 | 2877 | if ($p_parent_dir != $p_dir) { |
2878 | 2878 | // ----- Look for parent directory |
2879 | - if ($p_parent_dir != '') { |
|
2880 | - if (($v_result = $this->_dirCheck($p_parent_dir)) != 1) { |
|
2881 | - return $v_result; |
|
2882 | - } |
|
2883 | - } |
|
2879 | + if ($p_parent_dir != '') { |
|
2880 | + if (($v_result = $this->_dirCheck($p_parent_dir)) != 1) { |
|
2881 | + return $v_result; |
|
2882 | + } |
|
2883 | + } |
|
2884 | 2884 | } |
2885 | 2885 | |
2886 | 2886 | // ----- Create the directory |
2887 | 2887 | if (!@mkdir($p_dir, 0777)) { |
2888 | 2888 | $this->_errorLog(ARCHIVE_ZIP_ERR_DIR_CREATE_FAIL, |
2889 | - "Unable to create directory '$p_dir'"); |
|
2889 | + "Unable to create directory '$p_dir'"); |
|
2890 | 2890 | return Archive_Zip::errorCode(); |
2891 | 2891 | } |
2892 | 2892 | |
2893 | 2893 | // ----- Return |
2894 | 2894 | return $v_result; |
2895 | - } |
|
2896 | - // --------------------------------------------------------------------------- |
|
2897 | - |
|
2898 | - // --------------------------------------------------------------------------- |
|
2899 | - // Function : _merge() |
|
2900 | - // Description : |
|
2901 | - // If $p_archive_to_add does not exist, the function exit with a success result. |
|
2902 | - // Parameters : |
|
2903 | - // Return Values : |
|
2904 | - // --------------------------------------------------------------------------- |
|
2905 | - /** |
|
2906 | - * Archive_Zip::_merge() |
|
2907 | - * |
|
2908 | - * { Description } |
|
2909 | - * |
|
2910 | - */ |
|
2911 | - public function _merge(&$p_archive_to_add) |
|
2912 | - { |
|
2913 | - $v_result=1; |
|
2895 | + } |
|
2896 | + // --------------------------------------------------------------------------- |
|
2897 | + |
|
2898 | + // --------------------------------------------------------------------------- |
|
2899 | + // Function : _merge() |
|
2900 | + // Description : |
|
2901 | + // If $p_archive_to_add does not exist, the function exit with a success result. |
|
2902 | + // Parameters : |
|
2903 | + // Return Values : |
|
2904 | + // --------------------------------------------------------------------------- |
|
2905 | + /** |
|
2906 | + * Archive_Zip::_merge() |
|
2907 | + * |
|
2908 | + * { Description } |
|
2909 | + * |
|
2910 | + */ |
|
2911 | + public function _merge(&$p_archive_to_add) |
|
2912 | + { |
|
2913 | + $v_result=1; |
|
2914 | 2914 | |
2915 | 2915 | // ----- Look if the archive_to_add exists |
2916 | 2916 | if (!is_file($p_archive_to_add->_zipname)) { |
2917 | 2917 | // ----- Nothing to merge, so merge is a success |
2918 | - return 1; |
|
2918 | + return 1; |
|
2919 | 2919 | } |
2920 | 2920 | |
2921 | 2921 | // ----- Look if the archive exists |
2922 | 2922 | if (!is_file($this->_zipname)) { |
2923 | 2923 | // ----- Do a duplicate |
2924 | - $v_result = $this->_duplicate($p_archive_to_add->_zipname); |
|
2924 | + $v_result = $this->_duplicate($p_archive_to_add->_zipname); |
|
2925 | 2925 | |
2926 | 2926 | return $v_result; |
2927 | 2927 | } |
@@ -2933,10 +2933,10 @@ discard block |
||
2933 | 2933 | |
2934 | 2934 | // ----- Read the central directory informations |
2935 | 2935 | $v_central_dir = array(); |
2936 | - if (($v_result = $this->_readEndCentralDir($v_central_dir)) != 1) { |
|
2937 | - $this->_closeFd(); |
|
2938 | - return $v_result; |
|
2939 | - } |
|
2936 | + if (($v_result = $this->_readEndCentralDir($v_central_dir)) != 1) { |
|
2937 | + $this->_closeFd(); |
|
2938 | + return $v_result; |
|
2939 | + } |
|
2940 | 2940 | |
2941 | 2941 | // ----- Go to beginning of File |
2942 | 2942 | @rewind($this->_zip_fd); |
@@ -2949,12 +2949,12 @@ discard block |
||
2949 | 2949 | |
2950 | 2950 | // ----- Read the central directory informations |
2951 | 2951 | $v_central_dir_to_add = array(); |
2952 | - $v_result = $p_archive_to_add->_readEndCentralDir($v_central_dir_to_add); |
|
2953 | - if ($v_result != 1) { |
|
2954 | - $this->_closeFd(); |
|
2955 | - $p_archive_to_add->_closeFd(); |
|
2956 | - return $v_result; |
|
2957 | - } |
|
2952 | + $v_result = $p_archive_to_add->_readEndCentralDir($v_central_dir_to_add); |
|
2953 | + if ($v_result != 1) { |
|
2954 | + $this->_closeFd(); |
|
2955 | + $p_archive_to_add->_closeFd(); |
|
2956 | + return $v_result; |
|
2957 | + } |
|
2958 | 2958 | |
2959 | 2959 | // ----- Go to beginning of File |
2960 | 2960 | @rewind($p_archive_to_add->_zip_fd); |
@@ -2967,8 +2967,8 @@ discard block |
||
2967 | 2967 | $this->_closeFd(); |
2968 | 2968 | $p_archive_to_add->_closeFd(); |
2969 | 2969 | $this->_errorLog(ARCHIVE_ZIP_ERR_READ_OPEN_FAIL, |
2970 | - 'Unable to open temporary file \'' |
|
2971 | - .$v_zip_temp_name.'\' in binary write mode'); |
|
2970 | + 'Unable to open temporary file \'' |
|
2971 | + .$v_zip_temp_name.'\' in binary write mode'); |
|
2972 | 2972 | return Archive_Zip::errorCode(); |
2973 | 2973 | } |
2974 | 2974 | |
@@ -2976,46 +2976,46 @@ discard block |
||
2976 | 2976 | // TBC : Here I should better append the file and go back to erase the |
2977 | 2977 | // central dir |
2978 | 2978 | $v_size = $v_central_dir['offset']; |
2979 | - while ($v_size != 0) { |
|
2980 | - $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
2979 | + while ($v_size != 0) { |
|
2980 | + $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
2981 | 2981 | ? $v_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
2982 | - $v_buffer = fread($this->_zip_fd, $v_read_size); |
|
2983 | - @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); |
|
2984 | - $v_size -= $v_read_size; |
|
2985 | - } |
|
2982 | + $v_buffer = fread($this->_zip_fd, $v_read_size); |
|
2983 | + @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); |
|
2984 | + $v_size -= $v_read_size; |
|
2985 | + } |
|
2986 | 2986 | |
2987 | 2987 | // ----- Copy the files from the archive_to_add into the temporary file |
2988 | 2988 | $v_size = $v_central_dir_to_add['offset']; |
2989 | - while ($v_size != 0) { |
|
2990 | - $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
2989 | + while ($v_size != 0) { |
|
2990 | + $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
2991 | 2991 | ? $v_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
2992 | - $v_buffer = fread($p_archive_to_add->_zip_fd, $v_read_size); |
|
2993 | - @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); |
|
2994 | - $v_size -= $v_read_size; |
|
2995 | - } |
|
2992 | + $v_buffer = fread($p_archive_to_add->_zip_fd, $v_read_size); |
|
2993 | + @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); |
|
2994 | + $v_size -= $v_read_size; |
|
2995 | + } |
|
2996 | 2996 | |
2997 | 2997 | // ----- Store the offset of the central dir |
2998 | 2998 | $v_offset = @ftell($v_zip_temp_fd); |
2999 | 2999 | |
3000 | 3000 | // ----- Copy the block of file headers from the old archive |
3001 | 3001 | $v_size = $v_central_dir['size']; |
3002 | - while ($v_size != 0) { |
|
3003 | - $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3002 | + while ($v_size != 0) { |
|
3003 | + $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3004 | 3004 | ? $v_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
3005 | - $v_buffer = @fread($this->_zip_fd, $v_read_size); |
|
3006 | - @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); |
|
3007 | - $v_size -= $v_read_size; |
|
3008 | - } |
|
3005 | + $v_buffer = @fread($this->_zip_fd, $v_read_size); |
|
3006 | + @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); |
|
3007 | + $v_size -= $v_read_size; |
|
3008 | + } |
|
3009 | 3009 | |
3010 | 3010 | // ----- Copy the block of file headers from the archive_to_add |
3011 | 3011 | $v_size = $v_central_dir_to_add['size']; |
3012 | - while ($v_size != 0) { |
|
3013 | - $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3012 | + while ($v_size != 0) { |
|
3013 | + $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3014 | 3014 | ? $v_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
3015 | - $v_buffer = @fread($p_archive_to_add->_zip_fd, $v_read_size); |
|
3016 | - @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); |
|
3017 | - $v_size -= $v_read_size; |
|
3018 | - } |
|
3015 | + $v_buffer = @fread($p_archive_to_add->_zip_fd, $v_read_size); |
|
3016 | + @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); |
|
3017 | + $v_size -= $v_read_size; |
|
3018 | + } |
|
3019 | 3019 | |
3020 | 3020 | // ----- Zip file comment |
3021 | 3021 | // TBC : I should merge the two comments |
@@ -3028,8 +3028,8 @@ discard block |
||
3028 | 3028 | // Here is a trick : I swap the temporary fd with the zip fd, in order to use |
3029 | 3029 | // the following methods on the temporary fil and not the real archive fd |
3030 | 3030 | $v_swap = $this->_zip_fd; |
3031 | - $this->_zip_fd = $v_zip_temp_fd; |
|
3032 | - $v_zip_temp_fd = $v_swap; |
|
3031 | + $this->_zip_fd = $v_zip_temp_fd; |
|
3032 | + $v_zip_temp_fd = $v_swap; |
|
3033 | 3033 | |
3034 | 3034 | // ----- Create the central dir footer |
3035 | 3035 | if (($v_result = $this->_writeCentralHeader($v_central_dir['entries'] |
@@ -3041,21 +3041,21 @@ discard block |
||
3041 | 3041 | @fclose($v_zip_temp_fd); |
3042 | 3042 | $this->_zip_fd = null; |
3043 | 3043 | |
3044 | - // ----- Reset the file list |
|
3045 | - unset($v_header_list); |
|
3044 | + // ----- Reset the file list |
|
3045 | + unset($v_header_list); |
|
3046 | 3046 | |
3047 | - // ----- Return |
|
3048 | - return $v_result; |
|
3047 | + // ----- Return |
|
3048 | + return $v_result; |
|
3049 | 3049 | } |
3050 | 3050 | |
3051 | 3051 | // ----- Swap back the file descriptor |
3052 | 3052 | $v_swap = $this->_zip_fd; |
3053 | - $this->_zip_fd = $v_zip_temp_fd; |
|
3054 | - $v_zip_temp_fd = $v_swap; |
|
3053 | + $this->_zip_fd = $v_zip_temp_fd; |
|
3054 | + $v_zip_temp_fd = $v_swap; |
|
3055 | 3055 | |
3056 | 3056 | // ----- Close |
3057 | 3057 | $this->_closeFd(); |
3058 | - $p_archive_to_add->_closeFd(); |
|
3058 | + $p_archive_to_add->_closeFd(); |
|
3059 | 3059 | |
3060 | 3060 | // ----- Close the temporary file |
3061 | 3061 | @fclose($v_zip_temp_fd); |
@@ -3071,47 +3071,47 @@ discard block |
||
3071 | 3071 | |
3072 | 3072 | // ----- Return |
3073 | 3073 | return $v_result; |
3074 | - } |
|
3075 | - // --------------------------------------------------------------------------- |
|
3076 | - |
|
3077 | - // --------------------------------------------------------------------------- |
|
3078 | - // Function : _duplicate() |
|
3079 | - // Description : |
|
3080 | - // Parameters : |
|
3081 | - // Return Values : |
|
3082 | - // --------------------------------------------------------------------------- |
|
3083 | - /** |
|
3084 | - * Archive_Zip::_duplicate() |
|
3085 | - * |
|
3086 | - * { Description } |
|
3087 | - * |
|
3088 | - */ |
|
3089 | - public function _duplicate($p_archive_filename) |
|
3090 | - { |
|
3091 | - $v_result=1; |
|
3074 | + } |
|
3075 | + // --------------------------------------------------------------------------- |
|
3076 | + |
|
3077 | + // --------------------------------------------------------------------------- |
|
3078 | + // Function : _duplicate() |
|
3079 | + // Description : |
|
3080 | + // Parameters : |
|
3081 | + // Return Values : |
|
3082 | + // --------------------------------------------------------------------------- |
|
3083 | + /** |
|
3084 | + * Archive_Zip::_duplicate() |
|
3085 | + * |
|
3086 | + * { Description } |
|
3087 | + * |
|
3088 | + */ |
|
3089 | + public function _duplicate($p_archive_filename) |
|
3090 | + { |
|
3091 | + $v_result=1; |
|
3092 | 3092 | |
3093 | 3093 | // ----- Look if the $p_archive_filename exists |
3094 | 3094 | if (!is_file($p_archive_filename)) { |
3095 | 3095 | |
3096 | - // ----- Nothing to duplicate, so duplicate is a success. |
|
3097 | - $v_result = 1; |
|
3096 | + // ----- Nothing to duplicate, so duplicate is a success. |
|
3097 | + $v_result = 1; |
|
3098 | 3098 | |
3099 | - // ----- Return |
|
3100 | - return $v_result; |
|
3099 | + // ----- Return |
|
3100 | + return $v_result; |
|
3101 | 3101 | } |
3102 | 3102 | |
3103 | 3103 | // ----- Open the zip file |
3104 | 3104 | if (($v_result=$this->_openFd('wb')) != 1) { |
3105 | 3105 | // ----- Return |
3106 | - return $v_result; |
|
3106 | + return $v_result; |
|
3107 | 3107 | } |
3108 | 3108 | |
3109 | 3109 | // ----- Open the temporary file in write mode |
3110 | 3110 | if (($v_zip_temp_fd = @fopen($p_archive_filename, 'rb')) == 0) { |
3111 | 3111 | $this->_closeFd(); |
3112 | 3112 | $this->_errorLog(ARCHIVE_ZIP_ERR_READ_OPEN_FAIL, |
3113 | - 'Unable to open archive file \'' |
|
3114 | - .$p_archive_filename.'\' in binary write mode'); |
|
3113 | + 'Unable to open archive file \'' |
|
3114 | + .$p_archive_filename.'\' in binary write mode'); |
|
3115 | 3115 | return Archive_Zip::errorCode(); |
3116 | 3116 | } |
3117 | 3117 | |
@@ -3119,13 +3119,13 @@ discard block |
||
3119 | 3119 | // TBC : Here I should better append the file and go back to erase the |
3120 | 3120 | // central dir |
3121 | 3121 | $v_size = filesize($p_archive_filename); |
3122 | - while ($v_size != 0) { |
|
3123 | - $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3122 | + while ($v_size != 0) { |
|
3123 | + $v_read_size = ($v_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3124 | 3124 | ? $v_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
3125 | - $v_buffer = fread($v_zip_temp_fd, $v_read_size); |
|
3126 | - @fwrite($this->_zip_fd, $v_buffer, $v_read_size); |
|
3127 | - $v_size -= $v_read_size; |
|
3128 | - } |
|
3125 | + $v_buffer = fread($v_zip_temp_fd, $v_read_size); |
|
3126 | + @fwrite($this->_zip_fd, $v_buffer, $v_read_size); |
|
3127 | + $v_size -= $v_read_size; |
|
3128 | + } |
|
3129 | 3129 | |
3130 | 3130 | // ----- Close |
3131 | 3131 | $this->_closeFd(); |
@@ -3133,25 +3133,25 @@ discard block |
||
3133 | 3133 | // ----- Close the temporary file |
3134 | 3134 | @fclose($v_zip_temp_fd); |
3135 | 3135 | |
3136 | - return $v_result; |
|
3137 | - } |
|
3138 | - // --------------------------------------------------------------------------- |
|
3139 | - |
|
3140 | - /** |
|
3141 | - * Archive_Zip::_check_parameters() |
|
3142 | - * |
|
3143 | - * { Description } |
|
3144 | - * |
|
3145 | - * @param integer $p_error_code |
|
3146 | - * @param string $p_error_string |
|
3147 | - */ |
|
3148 | - public function _check_parameters(&$p_params, $p_default) |
|
3149 | - { |
|
3136 | + return $v_result; |
|
3137 | + } |
|
3138 | + // --------------------------------------------------------------------------- |
|
3139 | + |
|
3140 | + /** |
|
3141 | + * Archive_Zip::_check_parameters() |
|
3142 | + * |
|
3143 | + * { Description } |
|
3144 | + * |
|
3145 | + * @param integer $p_error_code |
|
3146 | + * @param string $p_error_string |
|
3147 | + */ |
|
3148 | + public function _check_parameters(&$p_params, $p_default) |
|
3149 | + { |
|
3150 | 3150 | |
3151 | 3151 | // ----- Check that param is an array |
3152 | 3152 | if (!is_array($p_params)) { |
3153 | 3153 | $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_PARAMETER, |
3154 | - 'Unsupported parameter, waiting for an array'); |
|
3154 | + 'Unsupported parameter, waiting for an array'); |
|
3155 | 3155 | return Archive_Zip::errorCode(); |
3156 | 3156 | } |
3157 | 3157 | |
@@ -3159,7 +3159,7 @@ discard block |
||
3159 | 3159 | for (reset($p_params); list($v_key, $v_value) = each($p_params);) { |
3160 | 3160 | if (!isset($p_default[$v_key])) { |
3161 | 3161 | $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_PARAMETER, |
3162 | - 'Unsupported parameter with key \''.$v_key.'\''); |
|
3162 | + 'Unsupported parameter with key \''.$v_key.'\''); |
|
3163 | 3163 | |
3164 | 3164 | return Archive_Zip::errorCode(); |
3165 | 3165 | } |
@@ -3174,170 +3174,170 @@ discard block |
||
3174 | 3174 | |
3175 | 3175 | // ----- Check specific parameters |
3176 | 3176 | $v_callback_list = array('callback_pre_add', 'callback_post_add', |
3177 | - 'callback_pre_extract', 'callback_post_extract'); |
|
3178 | - for ($i=0; $i < count($v_callback_list); $i++) { |
|
3179 | - $v_key=$v_callback_list[$i]; |
|
3180 | - if (isset($p_params[$v_key]) && ($p_params[$v_key] != '')) { |
|
3181 | - if (!function_exists($p_params[$v_key])) { |
|
3182 | - $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_PARAM_VALUE, |
|
3183 | - "Callback '".$p_params[$v_key] |
|
3184 | - ."()' is not an existing function for " |
|
3185 | - ."parameter '".$v_key."'"); |
|
3186 | - return Archive_Zip::errorCode(); |
|
3187 | - } |
|
3188 | - } |
|
3189 | - } |
|
3190 | - |
|
3191 | - return 1; |
|
3192 | - } |
|
3193 | - // --------------------------------------------------------------------------- |
|
3194 | - |
|
3195 | - // --------------------------------------------------------------------------- |
|
3196 | - // Function : _errorLog() |
|
3197 | - // Description : |
|
3198 | - // Parameters : |
|
3199 | - // --------------------------------------------------------------------------- |
|
3200 | - /** |
|
3201 | - * Archive_Zip::_errorLog() |
|
3202 | - * |
|
3203 | - * { Description } |
|
3204 | - * |
|
3205 | - * @param integer $p_error_code |
|
3206 | - * @param string $p_error_string |
|
3207 | - */ |
|
3208 | - public function _errorLog($p_error_code=0, $p_error_string='') |
|
3209 | - { |
|
3210 | - $this->_error_code = $p_error_code; |
|
3211 | - $this->_error_string = $p_error_string; |
|
3212 | - } |
|
3213 | - // --------------------------------------------------------------------------- |
|
3214 | - |
|
3215 | - // --------------------------------------------------------------------------- |
|
3216 | - // Function : _errorReset() |
|
3217 | - // Description : |
|
3218 | - // Parameters : |
|
3219 | - // --------------------------------------------------------------------------- |
|
3220 | - /** |
|
3221 | - * Archive_Zip::_errorReset() |
|
3222 | - * |
|
3223 | - * { Description } |
|
3224 | - * |
|
3225 | - */ |
|
3226 | - public function _errorReset() |
|
3227 | - { |
|
3228 | - $this->_error_code = 1; |
|
3229 | - $this->_error_string = ''; |
|
3230 | - } |
|
3231 | - // --------------------------------------------------------------------------- |
|
3232 | - |
|
3233 | - // --------------------------------------------------------------------------- |
|
3234 | - // Function : $this->_tool_PathReduction() |
|
3235 | - // Description : |
|
3236 | - // Parameters : |
|
3237 | - // Return Values : |
|
3238 | - // --------------------------------------------------------------------------- |
|
3239 | - /** |
|
3240 | - * _tool_PathReduction() |
|
3241 | - * |
|
3242 | - * { Description } |
|
3243 | - * |
|
3244 | - */ |
|
3245 | - public function _tool_PathReduction($p_dir) |
|
3246 | - { |
|
3247 | - $v_result = ''; |
|
3177 | + 'callback_pre_extract', 'callback_post_extract'); |
|
3178 | + for ($i=0; $i < count($v_callback_list); $i++) { |
|
3179 | + $v_key=$v_callback_list[$i]; |
|
3180 | + if (isset($p_params[$v_key]) && ($p_params[$v_key] != '')) { |
|
3181 | + if (!function_exists($p_params[$v_key])) { |
|
3182 | + $this->_errorLog(ARCHIVE_ZIP_ERR_INVALID_PARAM_VALUE, |
|
3183 | + "Callback '".$p_params[$v_key] |
|
3184 | + ."()' is not an existing function for " |
|
3185 | + ."parameter '".$v_key."'"); |
|
3186 | + return Archive_Zip::errorCode(); |
|
3187 | + } |
|
3188 | + } |
|
3189 | + } |
|
3190 | + |
|
3191 | + return 1; |
|
3192 | + } |
|
3193 | + // --------------------------------------------------------------------------- |
|
3194 | + |
|
3195 | + // --------------------------------------------------------------------------- |
|
3196 | + // Function : _errorLog() |
|
3197 | + // Description : |
|
3198 | + // Parameters : |
|
3199 | + // --------------------------------------------------------------------------- |
|
3200 | + /** |
|
3201 | + * Archive_Zip::_errorLog() |
|
3202 | + * |
|
3203 | + * { Description } |
|
3204 | + * |
|
3205 | + * @param integer $p_error_code |
|
3206 | + * @param string $p_error_string |
|
3207 | + */ |
|
3208 | + public function _errorLog($p_error_code=0, $p_error_string='') |
|
3209 | + { |
|
3210 | + $this->_error_code = $p_error_code; |
|
3211 | + $this->_error_string = $p_error_string; |
|
3212 | + } |
|
3213 | + // --------------------------------------------------------------------------- |
|
3214 | + |
|
3215 | + // --------------------------------------------------------------------------- |
|
3216 | + // Function : _errorReset() |
|
3217 | + // Description : |
|
3218 | + // Parameters : |
|
3219 | + // --------------------------------------------------------------------------- |
|
3220 | + /** |
|
3221 | + * Archive_Zip::_errorReset() |
|
3222 | + * |
|
3223 | + * { Description } |
|
3224 | + * |
|
3225 | + */ |
|
3226 | + public function _errorReset() |
|
3227 | + { |
|
3228 | + $this->_error_code = 1; |
|
3229 | + $this->_error_string = ''; |
|
3230 | + } |
|
3231 | + // --------------------------------------------------------------------------- |
|
3232 | + |
|
3233 | + // --------------------------------------------------------------------------- |
|
3234 | + // Function : $this->_tool_PathReduction() |
|
3235 | + // Description : |
|
3236 | + // Parameters : |
|
3237 | + // Return Values : |
|
3238 | + // --------------------------------------------------------------------------- |
|
3239 | + /** |
|
3240 | + * _tool_PathReduction() |
|
3241 | + * |
|
3242 | + * { Description } |
|
3243 | + * |
|
3244 | + */ |
|
3245 | + public function _tool_PathReduction($p_dir) |
|
3246 | + { |
|
3247 | + $v_result = ''; |
|
3248 | 3248 | |
3249 | 3249 | // ----- Look for not empty path |
3250 | 3250 | if ($p_dir != '') { |
3251 | 3251 | // ----- Explode path by directory names |
3252 | - $v_list = explode('/', $p_dir); |
|
3252 | + $v_list = explode('/', $p_dir); |
|
3253 | 3253 | |
3254 | - // ----- Study directories from last to first |
|
3255 | - for ($i= count($v_list) - 1; $i >= 0; $i--) { |
|
3256 | - // ----- Look for current path |
|
3254 | + // ----- Study directories from last to first |
|
3255 | + for ($i= count($v_list) - 1; $i >= 0; $i--) { |
|
3256 | + // ----- Look for current path |
|
3257 | 3257 | if ($v_list[$i] == '.') { |
3258 | 3258 | // ----- Ignore this directory |
3259 | - // Should be the first $i=0, but no check is done |
|
3259 | + // Should be the first $i=0, but no check is done |
|
3260 | 3260 | } elseif ($v_list[$i] == '..') { |
3261 | 3261 | // ----- Ignore it and ignore the $i-1 |
3262 | - $i--; |
|
3262 | + $i--; |
|
3263 | 3263 | } elseif (($v_list[$i] == '') && ($i != (count($v_list) - 1)) && ($i != 0)) { |
3264 | 3264 | // ----- Ignore only the double '//' in path, |
3265 | - // but not the first and last '/' |
|
3265 | + // but not the first and last '/' |
|
3266 | 3266 | } else { |
3267 | 3267 | $v_result = $v_list[$i].($i!=(count($v_list) - 1)? '/' . $v_result: ''); |
3268 | 3268 | } |
3269 | - } |
|
3269 | + } |
|
3270 | 3270 | } |
3271 | 3271 | |
3272 | 3272 | // ----- Return |
3273 | 3273 | return $v_result; |
3274 | - } |
|
3275 | - // --------------------------------------------------------------------------- |
|
3276 | - |
|
3277 | - // --------------------------------------------------------------------------- |
|
3278 | - // Function : $this->_tool_PathInclusion() |
|
3279 | - // Description : |
|
3280 | - // This function indicates if the path $p_path is under the $p_dir tree. Or, |
|
3281 | - // said in an other way, if the file or sub-dir $p_path is inside the dir |
|
3282 | - // $p_dir. |
|
3283 | - // The function indicates also if the path is exactly the same as the dir. |
|
3284 | - // This function supports path with duplicated '/' like '//', but does not |
|
3285 | - // support '.' or '..' statements. |
|
3286 | - // Parameters : |
|
3287 | - // Return Values : |
|
3288 | - // 0 if $p_path is not inside directory $p_dir |
|
3289 | - // 1 if $p_path is inside directory $p_dir |
|
3290 | - // 2 if $p_path is exactly the same as $p_dir |
|
3291 | - // --------------------------------------------------------------------------- |
|
3292 | - /** |
|
3293 | - * _tool_PathInclusion() |
|
3294 | - * |
|
3295 | - * { Description } |
|
3296 | - * |
|
3297 | - */ |
|
3298 | - public function _tool_PathInclusion($p_dir, $p_path) |
|
3299 | - { |
|
3300 | - $v_result = 1; |
|
3274 | + } |
|
3275 | + // --------------------------------------------------------------------------- |
|
3276 | + |
|
3277 | + // --------------------------------------------------------------------------- |
|
3278 | + // Function : $this->_tool_PathInclusion() |
|
3279 | + // Description : |
|
3280 | + // This function indicates if the path $p_path is under the $p_dir tree. Or, |
|
3281 | + // said in an other way, if the file or sub-dir $p_path is inside the dir |
|
3282 | + // $p_dir. |
|
3283 | + // The function indicates also if the path is exactly the same as the dir. |
|
3284 | + // This function supports path with duplicated '/' like '//', but does not |
|
3285 | + // support '.' or '..' statements. |
|
3286 | + // Parameters : |
|
3287 | + // Return Values : |
|
3288 | + // 0 if $p_path is not inside directory $p_dir |
|
3289 | + // 1 if $p_path is inside directory $p_dir |
|
3290 | + // 2 if $p_path is exactly the same as $p_dir |
|
3291 | + // --------------------------------------------------------------------------- |
|
3292 | + /** |
|
3293 | + * _tool_PathInclusion() |
|
3294 | + * |
|
3295 | + * { Description } |
|
3296 | + * |
|
3297 | + */ |
|
3298 | + public function _tool_PathInclusion($p_dir, $p_path) |
|
3299 | + { |
|
3300 | + $v_result = 1; |
|
3301 | 3301 | |
3302 | 3302 | // ----- Explode dir and path by directory separator |
3303 | 3303 | $v_list_dir = explode('/', $p_dir); |
3304 | - $v_list_dir_size = count($v_list_dir); |
|
3305 | - $v_list_path = explode('/', $p_path); |
|
3306 | - $v_list_path_size = count($v_list_path); |
|
3304 | + $v_list_dir_size = count($v_list_dir); |
|
3305 | + $v_list_path = explode('/', $p_path); |
|
3306 | + $v_list_path_size = count($v_list_path); |
|
3307 | 3307 | |
3308 | 3308 | // ----- Study directories paths |
3309 | 3309 | $i = 0; |
3310 | - $j = 0; |
|
3311 | - while (($i < $v_list_dir_size) && ($j < $v_list_path_size) && $v_result) { |
|
3312 | - |
|
3313 | - // ----- Look for empty dir (path reduction) |
|
3314 | - if ($v_list_dir[$i] == '') { |
|
3315 | - $i++; |
|
3316 | - continue; |
|
3317 | - } |
|
3318 | - if ($v_list_path[$j] == '') { |
|
3319 | - $j++; |
|
3320 | - continue; |
|
3321 | - } |
|
3322 | - |
|
3323 | - // ----- Compare the items |
|
3324 | - if (($v_list_dir[$i] != $v_list_path[$j]) |
|
3310 | + $j = 0; |
|
3311 | + while (($i < $v_list_dir_size) && ($j < $v_list_path_size) && $v_result) { |
|
3312 | + |
|
3313 | + // ----- Look for empty dir (path reduction) |
|
3314 | + if ($v_list_dir[$i] == '') { |
|
3315 | + $i++; |
|
3316 | + continue; |
|
3317 | + } |
|
3318 | + if ($v_list_path[$j] == '') { |
|
3319 | + $j++; |
|
3320 | + continue; |
|
3321 | + } |
|
3322 | + |
|
3323 | + // ----- Compare the items |
|
3324 | + if (($v_list_dir[$i] != $v_list_path[$j]) |
|
3325 | 3325 | && ($v_list_dir[$i] != '') |
3326 | 3326 | && ($v_list_path[$j] != '')) { |
3327 | - $v_result = 0; |
|
3328 | - } |
|
3327 | + $v_result = 0; |
|
3328 | + } |
|
3329 | 3329 | |
3330 | - // ----- Next items |
|
3331 | - $i++; |
|
3332 | - $j++; |
|
3333 | - } |
|
3330 | + // ----- Next items |
|
3331 | + $i++; |
|
3332 | + $j++; |
|
3333 | + } |
|
3334 | 3334 | |
3335 | 3335 | // ----- Look if everything seems to be the same |
3336 | 3336 | if ($v_result) { |
3337 | 3337 | // ----- Skip all the empty items |
3338 | - while (($j < $v_list_path_size) && ($v_list_path[$j] == '')) { |
|
3339 | - $j++; |
|
3340 | - } |
|
3338 | + while (($j < $v_list_path_size) && ($v_list_path[$j] == '')) { |
|
3339 | + $j++; |
|
3340 | + } |
|
3341 | 3341 | while (($i < $v_list_dir_size) && ($v_list_dir[$i] == '')) { |
3342 | 3342 | $i++; |
3343 | 3343 | } |
@@ -3353,142 +3353,142 @@ discard block |
||
3353 | 3353 | |
3354 | 3354 | // ----- Return |
3355 | 3355 | return $v_result; |
3356 | - } |
|
3357 | - // --------------------------------------------------------------------------- |
|
3358 | - |
|
3359 | - // --------------------------------------------------------------------------- |
|
3360 | - // Function : $this->_tool_CopyBlock() |
|
3361 | - // Description : |
|
3362 | - // Parameters : |
|
3363 | - // $p_mode : read/write compression mode |
|
3364 | - // 0 : src & dest normal |
|
3365 | - // 1 : src gzip, dest normal |
|
3366 | - // 2 : src normal, dest gzip |
|
3367 | - // 3 : src & dest gzip |
|
3368 | - // Return Values : |
|
3369 | - // --------------------------------------------------------------------------- |
|
3370 | - /** |
|
3371 | - * _tool_CopyBlock() |
|
3372 | - * |
|
3373 | - * { Description } |
|
3374 | - * |
|
3375 | - * @param integer $p_mode |
|
3376 | - */ |
|
3377 | - public function _tool_CopyBlock($p_src, $p_dest, $p_size, $p_mode=0) |
|
3378 | - { |
|
3379 | - $v_result = 1; |
|
3380 | - |
|
3381 | - if ($p_mode==0) { |
|
3382 | - while ($p_size != 0) { |
|
3383 | - $v_read_size = ($p_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3356 | + } |
|
3357 | + // --------------------------------------------------------------------------- |
|
3358 | + |
|
3359 | + // --------------------------------------------------------------------------- |
|
3360 | + // Function : $this->_tool_CopyBlock() |
|
3361 | + // Description : |
|
3362 | + // Parameters : |
|
3363 | + // $p_mode : read/write compression mode |
|
3364 | + // 0 : src & dest normal |
|
3365 | + // 1 : src gzip, dest normal |
|
3366 | + // 2 : src normal, dest gzip |
|
3367 | + // 3 : src & dest gzip |
|
3368 | + // Return Values : |
|
3369 | + // --------------------------------------------------------------------------- |
|
3370 | + /** |
|
3371 | + * _tool_CopyBlock() |
|
3372 | + * |
|
3373 | + * { Description } |
|
3374 | + * |
|
3375 | + * @param integer $p_mode |
|
3376 | + */ |
|
3377 | + public function _tool_CopyBlock($p_src, $p_dest, $p_size, $p_mode=0) |
|
3378 | + { |
|
3379 | + $v_result = 1; |
|
3380 | + |
|
3381 | + if ($p_mode==0) { |
|
3382 | + while ($p_size != 0) { |
|
3383 | + $v_read_size = ($p_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3384 | 3384 | ? $p_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
3385 | - $v_buffer = @fread($p_src, $v_read_size); |
|
3386 | - @fwrite($p_dest, $v_buffer, $v_read_size); |
|
3387 | - $p_size -= $v_read_size; |
|
3388 | - } |
|
3389 | - } elseif ($p_mode==1) { |
|
3390 | - while ($p_size != 0) { |
|
3391 | - $v_read_size = ($p_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3385 | + $v_buffer = @fread($p_src, $v_read_size); |
|
3386 | + @fwrite($p_dest, $v_buffer, $v_read_size); |
|
3387 | + $p_size -= $v_read_size; |
|
3388 | + } |
|
3389 | + } elseif ($p_mode==1) { |
|
3390 | + while ($p_size != 0) { |
|
3391 | + $v_read_size = ($p_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3392 | 3392 | ? $p_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
3393 | - $v_buffer = @gzread($p_src, $v_read_size); |
|
3394 | - @fwrite($p_dest, $v_buffer, $v_read_size); |
|
3395 | - $p_size -= $v_read_size; |
|
3396 | - } |
|
3397 | - } elseif ($p_mode==2) { |
|
3398 | - while ($p_size != 0) { |
|
3399 | - $v_read_size = ($p_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3393 | + $v_buffer = @gzread($p_src, $v_read_size); |
|
3394 | + @fwrite($p_dest, $v_buffer, $v_read_size); |
|
3395 | + $p_size -= $v_read_size; |
|
3396 | + } |
|
3397 | + } elseif ($p_mode==2) { |
|
3398 | + while ($p_size != 0) { |
|
3399 | + $v_read_size = ($p_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3400 | 3400 | ? $p_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
3401 | - $v_buffer = @fread($p_src, $v_read_size); |
|
3402 | - @gzwrite($p_dest, $v_buffer, $v_read_size); |
|
3403 | - $p_size -= $v_read_size; |
|
3404 | - } |
|
3405 | - } elseif ($p_mode==3) { |
|
3406 | - while ($p_size != 0) { |
|
3407 | - $v_read_size = ($p_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3401 | + $v_buffer = @fread($p_src, $v_read_size); |
|
3402 | + @gzwrite($p_dest, $v_buffer, $v_read_size); |
|
3403 | + $p_size -= $v_read_size; |
|
3404 | + } |
|
3405 | + } elseif ($p_mode==3) { |
|
3406 | + while ($p_size != 0) { |
|
3407 | + $v_read_size = ($p_size < ARCHIVE_ZIP_READ_BLOCK_SIZE |
|
3408 | 3408 | ? $p_size : ARCHIVE_ZIP_READ_BLOCK_SIZE); |
3409 | - $v_buffer = @gzread($p_src, $v_read_size); |
|
3410 | - @gzwrite($p_dest, $v_buffer, $v_read_size); |
|
3411 | - $p_size -= $v_read_size; |
|
3412 | - } |
|
3413 | - } |
|
3409 | + $v_buffer = @gzread($p_src, $v_read_size); |
|
3410 | + @gzwrite($p_dest, $v_buffer, $v_read_size); |
|
3411 | + $p_size -= $v_read_size; |
|
3412 | + } |
|
3413 | + } |
|
3414 | 3414 | |
3415 | 3415 | // ----- Return |
3416 | 3416 | return $v_result; |
3417 | - } |
|
3418 | - // --------------------------------------------------------------------------- |
|
3419 | - |
|
3420 | - // --------------------------------------------------------------------------- |
|
3421 | - // Function : $this->_tool_Rename() |
|
3422 | - // Description : |
|
3423 | - // This function tries to do a simple rename() function. If it fails, it |
|
3424 | - // tries to copy the $p_src file in a new $p_dest file and then unlink the |
|
3425 | - // first one. |
|
3426 | - // Parameters : |
|
3427 | - // $p_src : Old filename |
|
3428 | - // $p_dest : New filename |
|
3429 | - // Return Values : |
|
3430 | - // 1 on success, 0 on failure. |
|
3431 | - // --------------------------------------------------------------------------- |
|
3432 | - /** |
|
3433 | - * _tool_Rename() |
|
3434 | - * |
|
3435 | - * { Description } |
|
3436 | - * |
|
3437 | - */ |
|
3438 | - public function _tool_Rename($p_src, $p_dest) |
|
3439 | - { |
|
3440 | - $v_result = 1; |
|
3417 | + } |
|
3418 | + // --------------------------------------------------------------------------- |
|
3419 | + |
|
3420 | + // --------------------------------------------------------------------------- |
|
3421 | + // Function : $this->_tool_Rename() |
|
3422 | + // Description : |
|
3423 | + // This function tries to do a simple rename() function. If it fails, it |
|
3424 | + // tries to copy the $p_src file in a new $p_dest file and then unlink the |
|
3425 | + // first one. |
|
3426 | + // Parameters : |
|
3427 | + // $p_src : Old filename |
|
3428 | + // $p_dest : New filename |
|
3429 | + // Return Values : |
|
3430 | + // 1 on success, 0 on failure. |
|
3431 | + // --------------------------------------------------------------------------- |
|
3432 | + /** |
|
3433 | + * _tool_Rename() |
|
3434 | + * |
|
3435 | + * { Description } |
|
3436 | + * |
|
3437 | + */ |
|
3438 | + public function _tool_Rename($p_src, $p_dest) |
|
3439 | + { |
|
3440 | + $v_result = 1; |
|
3441 | 3441 | |
3442 | 3442 | // ----- Try to rename the files |
3443 | 3443 | if (!@rename($p_src, $p_dest)) { |
3444 | 3444 | |
3445 | - // ----- Try to copy & unlink the src |
|
3446 | - if (!@copy($p_src, $p_dest)) { |
|
3447 | - $v_result = 0; |
|
3448 | - } elseif (!@unlink($p_src)) { |
|
3449 | - $v_result = 0; |
|
3450 | - } |
|
3445 | + // ----- Try to copy & unlink the src |
|
3446 | + if (!@copy($p_src, $p_dest)) { |
|
3447 | + $v_result = 0; |
|
3448 | + } elseif (!@unlink($p_src)) { |
|
3449 | + $v_result = 0; |
|
3450 | + } |
|
3451 | 3451 | } |
3452 | 3452 | |
3453 | 3453 | // ----- Return |
3454 | 3454 | return $v_result; |
3455 | - } |
|
3456 | - // --------------------------------------------------------------------------- |
|
3457 | - |
|
3458 | - // --------------------------------------------------------------------------- |
|
3459 | - // Function : $this->_tool_TranslateWinPath() |
|
3460 | - // Description : |
|
3461 | - // Translate windows path by replacing '\' by '/' and optionally removing |
|
3462 | - // drive letter. |
|
3463 | - // Parameters : |
|
3464 | - // $p_path : path to translate. |
|
3465 | - // $p_remove_disk_letter : true | false |
|
3466 | - // Return Values : |
|
3467 | - // The path translated. |
|
3468 | - // --------------------------------------------------------------------------- |
|
3469 | - /** |
|
3470 | - * _tool_TranslateWinPath() |
|
3471 | - * |
|
3472 | - * { Description } |
|
3473 | - * |
|
3474 | - * @param [type] $p_remove_disk_letter |
|
3475 | - */ |
|
3476 | - public function _tool_TranslateWinPath($p_path, $p_remove_disk_letter=true) |
|
3477 | - { |
|
3478 | - if (stristr(php_uname(), 'windows')) { |
|
3479 | - // ----- Look for potential disk letter |
|
3480 | - if ($p_remove_disk_letter |
|
3455 | + } |
|
3456 | + // --------------------------------------------------------------------------- |
|
3457 | + |
|
3458 | + // --------------------------------------------------------------------------- |
|
3459 | + // Function : $this->_tool_TranslateWinPath() |
|
3460 | + // Description : |
|
3461 | + // Translate windows path by replacing '\' by '/' and optionally removing |
|
3462 | + // drive letter. |
|
3463 | + // Parameters : |
|
3464 | + // $p_path : path to translate. |
|
3465 | + // $p_remove_disk_letter : true | false |
|
3466 | + // Return Values : |
|
3467 | + // The path translated. |
|
3468 | + // --------------------------------------------------------------------------- |
|
3469 | + /** |
|
3470 | + * _tool_TranslateWinPath() |
|
3471 | + * |
|
3472 | + * { Description } |
|
3473 | + * |
|
3474 | + * @param [type] $p_remove_disk_letter |
|
3475 | + */ |
|
3476 | + public function _tool_TranslateWinPath($p_path, $p_remove_disk_letter=true) |
|
3477 | + { |
|
3478 | + if (stristr(php_uname(), 'windows')) { |
|
3479 | + // ----- Look for potential disk letter |
|
3480 | + if ($p_remove_disk_letter |
|
3481 | 3481 | && (($v_position = strpos($p_path, ':')) != false)) { |
3482 | - $p_path = substr($p_path, $v_position+1); |
|
3483 | - } |
|
3484 | - // ----- Change potential windows directory separator |
|
3485 | - if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0, 1) == '\\')) { |
|
3486 | - $p_path = strtr($p_path, '\\', '/'); |
|
3487 | - } |
|
3488 | - } |
|
3489 | - return $p_path; |
|
3490 | - } |
|
3491 | - // --------------------------------------------------------------------------- |
|
3482 | + $p_path = substr($p_path, $v_position+1); |
|
3483 | + } |
|
3484 | + // ----- Change potential windows directory separator |
|
3485 | + if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0, 1) == '\\')) { |
|
3486 | + $p_path = strtr($p_path, '\\', '/'); |
|
3487 | + } |
|
3488 | + } |
|
3489 | + return $p_path; |
|
3490 | + } |
|
3491 | + // --------------------------------------------------------------------------- |
|
3492 | 3492 | } |
3493 | - // End of class |
|
3493 | + // End of class |
|
3494 | 3494 |
@@ -359,7 +359,7 @@ discard block |
||
359 | 359 | public function _renderOptionTree(&$tree, $option, $prefix, $parentIds = array()) |
360 | 360 | { |
361 | 361 | $tree .= $prefix."<input type=\"checkbox\" name=\"".$this->getName() . '[groups][' . $this->_groupId . '][' . $option['id'] . "]\" id=\"" . $this->getName() . '[groups][' . $this->_groupId . '][' |
362 | - . $option['id'] . "]\" onclick=\""; |
|
362 | + . $option['id'] . "]\" onclick=\""; |
|
363 | 363 | // If there are parent elements, add javascript that will |
364 | 364 | // make them selecteded when this element is checked to make |
365 | 365 | // sure permissions to parent items are added as well. |
@@ -380,7 +380,7 @@ discard block |
||
380 | 380 | $tree .= ' checked="checked"'; |
381 | 381 | } |
382 | 382 | $tree .= ' />' . $option['name'] . "<input type=\"hidden\" name=\"" . $this->getName() . '[parents][' . $option['id'] . "]\" value=\"" . implode(':', $parentIds) . "\" /><input type=\"hidden\" name=\"" . $this->getName() . '[itemname][' |
383 | - . $option['id'] . "]\" value=\"" . htmlspecialchars($option['name']) . "\" /><br />\n"; |
|
383 | + . $option['id'] . "]\" value=\"" . htmlspecialchars($option['name']) . "\" /><br />\n"; |
|
384 | 384 | if (isset($option['children'])) { |
385 | 385 | foreach ($option['children'] as $child) { |
386 | 386 | array_push($parentIds, $option['id']); |
@@ -20,8 +20,4 @@ |
||
20 | 20 | >>>>>>> feature/intval |
21 | 21 | if ($count <= 0) { |
22 | 22 | include_once XOOPS_TRUST_PATH.'/libs/altsys/include/tpls_functions.php' ; |
23 | - tplsadmin_import_data($xoopsConfig['template_set'], $file, implode('', file($file_path)), $mtime) ; |
|
24 | - } |
|
25 | - } |
|
26 | - } |
|
27 | -} |
|
23 | + tplsadmin_import_data($xoopsConfig['template_set'], $file, implode('', file($file_path)), $mtime |
|
28 | 24 | \ No newline at end of file |
@@ -398,14 +398,4 @@ |
||
398 | 398 | <select name='copy_to[{$tplset4disp}]'> |
399 | 399 | ".str_replace('<option value=\''.$tplset4disp.'\'>'.$tplset4disp.'</option>', '', $tplset_options)." |
400 | 400 | </select> |
401 | - <input name='copy_do[{$tplset4disp}]' type='submit' value='"._MYTPLSADMIN_BTN_COPY."' onclick='return altsys_mytpladmin_check_copy_submit(\""._MYTPLSADMIN_CNF_COPY_SELECTED_TEMPLATES."\", \"{$tplset4disp}_\", true);' /> |
|
402 | - </td>\n" ; |
|
403 | - } |
|
404 | - |
|
405 | -echo " </tr>\n" ; |
|
406 | - |
|
407 | - |
|
408 | -echo '</table></form>'; |
|
409 | -// end of table & form |
|
410 | - |
|
411 | -xoops_cp_footer() ; |
|
401 | + <input name='copy_do[{$tplset4disp}]' type='submit' value='"._MYTPLSADMIN_BTN_COPY."' onclick='return altsys_mytpladmin_check_copy_submit(\""._MYTPLSADMIN_CNF_COPY_SELECTED_TEMPLATES."\", \"{$tplset4disp} |
|
412 | 402 | \ No newline at end of file |
@@ -13,7 +13,7 @@ |
||
13 | 13 | define('_MI_ALTSYS_BNAME_ADMIN_MENU', 'Menu administrativo'); |
14 | 14 | define('_MI_ALTSYS_ENABLEFORCECLONE', 'Tornar todos os blocos clonáveis'); |
15 | 15 | define('_MI_ALTSYS_ENABLEFORCECLONEDSC', |
16 | - 'Esta opção permite que todos os blocos possam ser clonados. Antes de habilitar esta função, tenha em mente que alguns blocos causarão erros se forem mostrados mais de uma vez na mesma página.'); |
|
16 | + 'Esta opção permite que todos os blocos possam ser clonados. Antes de habilitar esta função, tenha em mente que alguns blocos causarão erros se forem mostrados mais de uma vez na mesma página.'); |
|
17 | 17 | define('_MI_ALTSYS_IMAGES_DIR', 'Diretório para os arquivos de imagem'); |
18 | 18 | define('_MI_ALTSYS_IMAGES_DIRDSC', 'O caminho relativo deve ser configurado no diretório do módulo. O padrão é <q>images</q>.'); |
19 | 19 | define('_MI_ALTSYS_MENU_ADVANCEDLANGADMIN', 'Idiomas (avançado)'); |
@@ -15,7 +15,7 @@ |
||
15 | 15 | define('_MYLANGADMIN_H3_MODULE', 'Módulo alvo'); |
16 | 16 | define('_MYLANGADMIN_MSG_D3LANGMANENABLED', 'O sistema de substituição está habilitado agora.'); |
17 | 17 | define('_MYLANGADMIN_MSG_HOWTOENABLED3LANGMAN4X2', |
18 | - 'O sistema de substituição não está funcionando com o núcleo desta versão do XOOPS Cube, exceto alguns módulos D3. Se você deseja habilitá-lo neste core, tente um hack como este:'); |
|
18 | + 'O sistema de substituição não está funcionando com o núcleo desta versão do XOOPS Cube, exceto alguns módulos D3. Se você deseja habilitá-lo neste core, tente um hack como este:'); |
|
19 | 19 | define('_MYLANGADMIN_MSG_NOTICE4ALREADYREAD', 'Desde que este arquivo já tenha sido lido pelo sistema, esta coluna significa o valor corrente'); |
20 | 20 | define('_MYLANGADMIN_NOTCREATED', 'Ainda não foi criado'); |
21 | 21 | define('_MYLANGADMIN_NOTE_ADDEDBYMYLANG', '(uma constante criada pelo utilizador)'); |
@@ -12,16 +12,16 @@ discard block |
||
12 | 12 | define('_TPLSADMIN_CNF_HOOKSAVEVARS', 'Nas compilações dos caches dos modelos será implantada a lógica para coleta das variáveis do modelo. Você concorda com isso?'); |
13 | 13 | define('_TPLSADMIN_CNF_REMOVEHOOKS', 'Você concorda com a normalização?'); |
14 | 14 | define('_TPLSADMIN_DD_ENCLOSEBYBORDEREDDIV', |
15 | - 'Cada modelo será envolto por códigos <q><code>DIV</code></q> de bordas pretas. Um link para controle da edição do tplsadmin será inserido em cada um dos modelos. Embora isso muitas vezes cause a destruição do design, você pode editar cada modelo mais instintiva e facilmente.'); |
|
15 | + 'Cada modelo será envolto por códigos <q><code>DIV</code></q> de bordas pretas. Um link para controle da edição do tplsadmin será inserido em cada um dos modelos. Embora isso muitas vezes cause a destruição do design, você pode editar cada modelo mais instintiva e facilmente.'); |
|
16 | 16 | define('_TPLSADMIN_DD_ENCLOSEBYCOMMENT', |
17 | - 'Dois comentários em HTML serão colocados nos pontos de começo e final de cada modelo. Uma vez que isso raramente quebra os design, isso é recomendado para profissionais que podem eles mesmos ler HTML'); |
|
17 | + 'Dois comentários em HTML serão colocados nos pontos de começo e final de cada modelo. Uma vez que isso raramente quebra os design, isso é recomendado para profissionais que podem eles mesmos ler HTML'); |
|
18 | 18 | define('_TPLSADMIN_DD_GETTEMPLATES', 'Selecione um conjunto antes de apertar cada botão.'); |
19 | 19 | define('_TPLSADMIN_DD_GETTPLSVARSINFO_DW', |
20 | - 'Primeiro , abra o Gerenciador de Extensões do Adobe DreamWeaver.<br />Extraia o arquivo descarregado.<br />Execute os arquivos com a extensão .mxi e você encontrará diálogos de instalação.<br />Os snippets para variáveis de modelo de seu site serão utilizáveis após reiniciar o Adobe DreamWeaver.'); |
|
20 | + 'Primeiro , abra o Gerenciador de Extensões do Adobe DreamWeaver.<br />Extraia o arquivo descarregado.<br />Execute os arquivos com a extensão .mxi e você encontrará diálogos de instalação.<br />Os snippets para variáveis de modelo de seu site serão utilizáveis após reiniciar o Adobe DreamWeaver.'); |
|
21 | 21 | define('_TPLSADMIN_DD_HOOKSAVEVARS', |
22 | - 'O primeiro passo para obtenção das informações das variáveis de modelo em seu site. As informações das variáveis do modelo serão coletadas quando o lado público de seu site for exibido. Após os modelos que você deseja editar forem mostrados, obtenha as informações das variáveis do modelo através dos botões subjacentes.'); |
|
22 | + 'O primeiro passo para obtenção das informações das variáveis de modelo em seu site. As informações das variáveis do modelo serão coletadas quando o lado público de seu site for exibido. Após os modelos que você deseja editar forem mostrados, obtenha as informações das variáveis do modelo através dos botões subjacentes.'); |
|
23 | 23 | define('_TPLSADMIN_DD_PUTTEMPLATES', |
24 | - 'Selecione um conjunto que você queira enviar ou subescrever, antes de enviar o arquivo zip ou tgz incluindo esses arquivos des modelos (.html). Você não precisa verificar a profundidade dos caminhos nos arquivos.'); |
|
24 | + 'Selecione um conjunto que você queira enviar ou subescrever, antes de enviar o arquivo zip ou tgz incluindo esses arquivos des modelos (.html). Você não precisa verificar a profundidade dos caminhos nos arquivos.'); |
|
25 | 25 | define('_TPLSADMIN_DD_REMOVEHOOKS', 'Isso remove comentários, códigos <q><code>DIV</code></q>, e sequências lógicas inseridas pelas operações acima em cada cache compilado do modelo.'); |
26 | 26 | define('_TPLSADMIN_DT_ENCLOSEBYBORDEREDDIV', 'Inserir códigos <q><code>DIV</code></q>'); |
27 | 27 | define('_TPLSADMIN_DT_ENCLOSEBYCOMMENT', 'Inserir comentários'); |
@@ -42,6 +42,6 @@ discard block |
||
42 | 42 | define('_TPLSADMIN_FMT_MSG_REMOVEHOOKS', '%d os caches de modelo foram normalizados'); |
43 | 43 | define('_TPLSADMIN_MSG_CLEARCACHE', 'Os caches dos modelos foram removidos'); |
44 | 44 | define('_TPLSADMIN_MSG_CREATECOMPILECACHEFIRST', |
45 | - 'Ainda não foi criado qualquer cache de modelos compilados. O primeiro passo para criar os arquivos de cache é tornar o seu portal acessível ao público.'); |
|
45 | + 'Ainda não foi criado qualquer cache de modelos compilados. O primeiro passo para criar os arquivos de cache é tornar o seu portal acessível ao público.'); |
|
46 | 46 | define('_TPLSADMIN_NUMCAP_COMPILEDCACHES', 'Caches de modelos compilados'); |
47 | 47 | define('_TPLSADMIN_NUMCAP_TPLSVARS', 'Arquivos com informações sobre as variáveis do modelo'); |