Lines Matching +full:- +full:- +full:-

4 // --------------------------------------------------------------------------------
5 // PhpConcept Library - Zip Module 2.5
6 // --------------------------------------------------------------------------------
7 // License GNU/LGPL - Vincent Blavet - March 2006
9 // --------------------------------------------------------------------------------
26 // --------------------------------------------------------------------------------
28 // --------------------------------------------------------------------------------
30 // ----- Constants
33 // ----- File list separator
45 // ----- Error configuration
52 // ----- Optional static temporary directory
56 // - MUST BE terminated by a '/'.
57 // - MUST be a valid, already created directory
63 // --------------------------------------------------------------------------------
65 // --------------------------------------------------------------------------------
67 // ----- Global variables
70 // ----- Error codes
71 // -1 : Unable to open file in binary write mode
72 // -2 : Unable to open file in binary read mode
73 // -3 : Invalid parameters
74 // -4 : File does not exist
75 // -5 : Filename is too long (max. 255)
76 // -6 : Not a valid zip file
77 // -7 : Invalid extracted file size
78 // -8 : Unable to create directory
79 // -9 : Invalid archive extension
80 // -10 : Invalid archive format
81 // -11 : Unable to delete file (unlink)
82 // -12 : Unable to rename file (rename)
83 // -13 : Invalid header checksum
84 // -14 : Invalid archive size
87 define('PCLZIP_ERR_WRITE_OPEN_FAIL', -1);
88 define('PCLZIP_ERR_READ_OPEN_FAIL', -2);
89 define('PCLZIP_ERR_INVALID_PARAMETER', -3);
90 define('PCLZIP_ERR_MISSING_FILE', -4);
91 define('PCLZIP_ERR_FILENAME_TOO_LONG', -5);
92 define('PCLZIP_ERR_INVALID_ZIP', -6);
93 define('PCLZIP_ERR_BAD_EXTRACTED_FILE', -7);
94 define('PCLZIP_ERR_DIR_CREATE_FAIL', -8);
95 define('PCLZIP_ERR_BAD_EXTENSION', -9);
96 define('PCLZIP_ERR_BAD_FORMAT', -10);
97 define('PCLZIP_ERR_DELETE_FILE_FAIL', -11);
98 define('PCLZIP_ERR_RENAME_FILE_FAIL', -12);
99 define('PCLZIP_ERR_BAD_CHECKSUM', -13);
100 define('PCLZIP_ERR_INVALID_ARCHIVE_ZIP', -14);
101 define('PCLZIP_ERR_MISSING_OPTION_VALUE', -15);
102 define('PCLZIP_ERR_INVALID_OPTION_VALUE', -16);
103 define('PCLZIP_ERR_ALREADY_A_DIRECTORY', -17);
104 define('PCLZIP_ERR_UNSUPPORTED_COMPRESSION', -18);
105 define('PCLZIP_ERR_UNSUPPORTED_ENCRYPTION', -19);
106 define('PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE', -20);
107 define('PCLZIP_ERR_DIRECTORY_RESTRICTION', -21);
109 // ----- Options values
132 // ----- File description attributes
137 // ----- Call backs values
149 // --------------------------------------------------------------------------------
162 // --------------------------------------------------------------------------------
163 /* @deprecated 2023-11 used in ajax.php, which is not used anymore */
166 // ----- Filename of the zip file
169 // ----- File descriptor of the zip file
172 // ----- Internal error handling
176 // ----- Current status of the magic_quotes_runtime
181 // --------------------------------------------------------------------------------
188 // --------------------------------------------------------------------------------
191 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::PclZip', "zipname=$p_zipname…
193 // ----- Tests the zlib
195 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 1, "zlib extension seems to be miss…
199 // ----- Set the attributes
200 $this->zipname = $p_zipname;
201 $this->zip_fd = 0;
202 $this->magic_quotes_status = -1;
204 // --------------------------------------------------------------------------------
206 // --------------------------------------------------------------------------------
242 // --------------------------------------------------------------------------------
245 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::create', "filelist='$p_filel…
248 // ----- Reset the error handler
249 $this->privErrorReset();
251 // ----- Set default values
255 // ----- Look for variable options arguments
257 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the…
259 // ----- Look for arguments
261 // ----- Get the arguments
264 // ----- Remove from the options list the first argument
266 $v_size--;
268 // ----- Look for first arg
270 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options detect…
272 // ----- Parse the options
273 $v_result = $this->privParseOptions(
280 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
285 // ----- Look for 2 args
289 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
291 // ----- Get the first argument
294 // ----- Look for the optional second argument
302 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
308 // ----- Init
314 // ----- Look if the $p_filelist is really an array
316 // ----- Look if the first element is also an array
322 // ----- The list is a list of string names
327 // ----- Create a list from the string
331 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
335 // ----- Reformat the string list
341 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Ignore an empty filename");
346 // ----- For each file in the list check the attributes
350 $v_result = $this->privFileDescrParseAtt(
357 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
362 // ----- Expand the filelist (expand directories)
363 $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options);
365 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
369 // ----- Call the create fct
370 $v_result = $this->privCreate($v_filedescr_list, $p_result_list, $v_options);
372 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
376 // ----- Return
377 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_result_list);
380 // --------------------------------------------------------------------------------
382 // --------------------------------------------------------------------------------
416 // --------------------------------------------------------------------------------
419 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::add', "filelist='$p_filelist…
422 // ----- Reset the error handler
423 $this->privErrorReset();
425 // ----- Set default values
429 // ----- Look for variable options arguments
431 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the…
433 // ----- Look for arguments
435 // ----- Get the arguments
438 // ----- Remove form the options list the first argument
440 $v_size--;
442 // ----- Look for first arg
444 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options detect…
446 // ----- Parse the options
447 $v_result = $this->privParseOptions(
454 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
459 // ----- Look for 2 args
463 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
465 // ----- Get the first argument
468 // ----- Look for the optional second argument
472 // ----- Error log
474 // ----- Return
475 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
481 // ----- Init
487 // ----- Look if the $p_filelist is really an array
489 // ----- Look if the first element is also an array
495 // ----- The list is a list of string names
500 // ----- Create a list from the string
504 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
508 // ----- Reformat the string list
515 // ----- For each file in the list check the attributes
519 $v_result = $this->privFileDescrParseAtt(
526 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
531 // ----- Expand the filelist (expand directories)
532 $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options);
534 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
538 // ----- Call the create fct
539 $v_result = $this->privAdd($v_filedescr_list, $p_result_list, $v_options);
541 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
545 // ----- Return
546 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_result_list);
549 // --------------------------------------------------------------------------------
551 // --------------------------------------------------------------------------------
591 // --------------------------------------------------------------------------------
594 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::listContent', "");
597 // ----- Reset the error handler
598 $this->privErrorReset();
600 // ----- Check archive
601 if (!$this->privCheckFormat()) {
602 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
606 // ----- Call the extracting fct
608 if (($v_result = $this->privList($p_list)) != 1) {
610 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
614 // ----- Return
615 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
618 // --------------------------------------------------------------------------------
620 // --------------------------------------------------------------------------------
651 // --------------------------------------------------------------------------------
654 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::extract", "");
657 // ----- Reset the error handler
658 $this->privErrorReset();
660 // ----- Check archive
661 if (!$this->privCheckFormat()) {
662 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
666 // ----- Set default values
673 // ----- Look for variable options arguments
675 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the…
677 // ----- Default values for option
680 // ----- Look for arguments
682 // ----- Get the arguments
685 // ----- Look for first arg
687 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options");
689 // ----- Parse the options
690 $v_result = $this->privParseOptions(
697 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
701 // ----- Set the arguments
712 // ----- Check for '/' in last path char
713 if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) {
720 // ----- Look for 2 args
724 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
726 // ----- Get the first argument
729 // ----- Look for the optional second argument
733 // ----- Error log
735 // ----- Return
736 … //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
742 // ----- Trace
743 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "path='$v_path', remove_path='$v…
745 // ----- Call the extracting fct
747 $v_result = $this->privExtractByRule(
756 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
760 // ----- Return
761 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
764 // --------------------------------------------------------------------------------
767 // --------------------------------------------------------------------------------
780 // extract. The form of the string is "0,4-6,8-12" with only numbers
781 // and '-' for range or ',' to separate ranges. No spaces or ';'
802 // --------------------------------------------------------------------------------
806 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::extractByIndex", "index='$p_…
809 // ----- Reset the error handler
810 $this->privErrorReset();
812 // ----- Check archive
813 if (!$this->privCheckFormat()) {
814 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
818 // ----- Set default values
825 // ----- Look for variable options arguments
827 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the…
829 // ----- Default values for option
832 // ----- Look for arguments
834 // ----- Get the arguments
837 // ----- Remove form the options list the first argument
839 $v_size--;
841 // ----- Look for first arg
843 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options");
845 // ----- Parse the options
846 $v_result = $this->privParseOptions(
853 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
857 // ----- Set the arguments
868 // ----- Check for '/' in last path char
869 if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) {
876 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Option PCLZIP_OPT_EXTRACT_AS_ST…
878 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Option PCLZIP_OPT_EXTRACT_AS_ST…
882 // ----- Look for 2 args
886 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
888 // ----- Get the first argument
891 // ----- Look for the optional second argument
895 // ----- Error log
897 // ----- Return
898 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
904 // ----- Trace
905 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "index='$p_index', path='$v_path…
907 // ----- Trick
912 $v_result = $this->privParseOptions(
919 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
924 // ----- Call the extracting fct
925 …if (($v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, $v_remove_all_path, $v…
926 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
930 // ----- Return
931 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
934 // --------------------------------------------------------------------------------
936 // --------------------------------------------------------------------------------
953 // --------------------------------------------------------------------------------
956 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::delete", "");
959 // ----- Reset the error handler
960 $this->privErrorReset();
962 // ----- Check archive
963 if (!$this->privCheckFormat()) {
964 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
968 // ----- Set default values
971 // ----- Look for variable options arguments
973 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the…
975 // ----- Look for arguments
977 // ----- Get the arguments
980 // ----- Parse the options
981 $v_result = $this->privParseOptions(
988 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
993 // ----- Magic quotes trick
994 $this->privDisableMagicQuotes();
996 // ----- Call the delete fct
998 if (($v_result = $this->privDeleteByRule($v_list, $v_options)) != 1) {
999 $this->privSwapBackMagicQuotes();
1001 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
1005 // ----- Magic quotes trick
1006 $this->privSwapBackMagicQuotes();
1008 // ----- Return
1009 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_list);
1012 // --------------------------------------------------------------------------------
1014 // --------------------------------------------------------------------------------
1019 // --------------------------------------------------------------------------------
1022 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::deleteByIndex", "index='$p_i…
1024 $p_list = $this->delete(PCLZIP_OPT_BY_INDEX, $p_index);
1026 // ----- Return
1027 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
1030 // --------------------------------------------------------------------------------
1032 // --------------------------------------------------------------------------------
1045 // --------------------------------------------------------------------------------
1048 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::properties", "");
1050 // ----- Reset the error handler
1051 $this->privErrorReset();
1053 // ----- Magic quotes trick
1054 $this->privDisableMagicQuotes();
1056 // ----- Check archive
1057 if (!$this->privCheckFormat()) {
1058 $this->privSwapBackMagicQuotes();
1059 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
1063 // ----- Default properties
1069 // ----- Look if file exists
1070 if (@is_file($this->zipname)) {
1071 // ----- Open the zip file
1072 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
1073 if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0) {
1074 $this->privSwapBackMagicQuotes();
1076 // ----- Error log
1077 …:privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \'' . $this->zipname . '\' in bin…
1079 // ----- Return
1080 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), 0);
1084 // ----- Read the central directory informations
1086 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) {
1087 $this->privSwapBackMagicQuotes();
1088 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
1092 // ----- Close the zip file
1093 $this->privCloseFd();
1095 // ----- Set the user attributes
1101 // ----- Magic quotes trick
1102 $this->privSwapBackMagicQuotes();
1104 // ----- Return
1105 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_prop);
1108 // --------------------------------------------------------------------------------
1110 // --------------------------------------------------------------------------------
1121 // --------------------------------------------------------------------------------
1124 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::duplicate", "");
1127 // ----- Reset the error handler
1128 $this->privErrorReset();
1130 // ----- Look if the $p_archive is a PclZip object
1132 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The parameter is valid PclZip o…
1133 // ----- Duplicate the archive
1134 $v_result = $this->privDuplicate($p_archive->zipname);
1136 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The parameter is a filename '$p…
1137 // ----- Check that $p_archive is a valid zip file
1140 // ----- Error log
1144 // ----- Duplicate the archive
1145 $v_result = $this->privDuplicate($p_archive);
1148 // ----- Error log
1153 // ----- Return
1154 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1157 // --------------------------------------------------------------------------------
1159 // --------------------------------------------------------------------------------
1172 // --------------------------------------------------------------------------------
1175 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::merge", "");
1178 // ----- Reset the error handler
1179 $this->privErrorReset();
1181 // ----- Check archive
1182 if (!$this->privCheckFormat()) {
1183 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
1187 // ----- Look if the $p_archive_to_add is a PclZip object
1189 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The parameter is valid PclZip o…
1190 // ----- Merge the archive
1191 $v_result = $this->privMerge($p_archive_to_add);
1193 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The parameter is a filename");
1194 // ----- Create a temporary archive
1196 // ----- Merge the archive
1197 $v_result = $this->privMerge($v_object_archive);
1199 // ----- Error log
1204 // ----- Return
1205 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1208 // --------------------------------------------------------------------------------
1212 // --------------------------------------------------------------------------------
1216 // --------------------------------------------------------------------------------
1222 return($this->error_code);
1225 // --------------------------------------------------------------------------------
1227 // --------------------------------------------------------------------------------
1231 // --------------------------------------------------------------------------------
1236 if (isset($v_name[$this->error_code])) {
1237 $v_value = $v_name[$this->error_code];
1243 return($v_value . ' (' . $this->error_code . ')');
1248 // --------------------------------------------------------------------------------
1250 // --------------------------------------------------------------------------------
1254 // --------------------------------------------------------------------------------
1260 return($this->errorName(true) . " : " . $this->error_string);
1262 return($this->error_string . " [code " . $this->error_code . "]");
1265 // --------------------------------------------------------------------------------
1268 // --------------------------------------------------------------------------------
1272 // --------------------------------------------------------------------------------
1276 // --------------------------------------------------------------------------------
1289 // --------------------------------------------------------------------------------
1292 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCheckFormat", "");
1295 // ----- Reset the file system cache
1298 // ----- Reset the error handler
1299 $this->privErrorReset();
1301 // ----- Look if the file exits
1302 if (!is_file($this->zipname)) {
1303 // ----- Error log
1304 … PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "Missing archive file '" . $this->zipname . "'");
1305 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, false, PclZip::errorInfo());
1309 // ----- Check that the file is readeable
1310 if (!is_readable($this->zipname)) {
1311 // ----- Error log
1312 …PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to read archive '" . $this->zipname . "'");
1313 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, false, PclZip::errorInfo());
1317 // ----- Check the magic code
1320 // ----- Check the central header
1323 // ----- Check each file header
1326 // ----- Return
1327 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1330 // --------------------------------------------------------------------------------
1332 // --------------------------------------------------------------------------------
1346 // --------------------------------------------------------------------------------
1349 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privParseOptions", "");
1352 // ----- Read the options
1355 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Looking for table index $i, opt…
1357 // ----- Check if the option is supported
1359 // ----- Error log
1362 // ----- Return
1363 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1367 // ----- Look for next option
1369 // ----- Look for options that request a path value
1373 // ----- Check the number of parameters
1375 // ----- Error log
1378 // ----- Return
1379 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1383 // ----- Get the value
1385 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1390 // ----- Check the number of parameters
1392 // ----- Error log
1395 // ----- Return
1396 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1400 // ----- Get the value
1406 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1409 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1413 // ----- Look for options that request an array of string for value
1415 // ----- Check the number of parameters
1417 // ----- Error log
1420 // ----- Return
1421 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1425 // ----- Get the value
1431 // ----- Error log
1434 // ----- Return
1435 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1438 …////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_opt…
1442 // ----- Look for options that request an EREG or PREG expression
1446 // ----- Check the number of parameters
1448 // ----- Error log
1451 // ----- Return
1452 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1456 // ----- Get the value
1460 // ----- Error log
1463 // ----- Return
1464 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1467 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1471 // ----- Look for options that takes a string
1475 // ----- Check the number of parameters
1477 // ----- Error log
1485 // ----- Return
1486 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1490 // ----- Get the value
1494 // ----- Error log
1502 // ----- Return
1503 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1506 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1510 // ----- Look for options that request an array of index
1512 // ----- Check the number of parameters
1514 // ----- Error log
1517 // ----- Return
1518 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1522 // ----- Get the value
1525 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is a string '".$p_o…
1526 // ----- Remove spaces
1528 // ----- Parse items
1531 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is an integer '".$p…
1532 $v_work_list[0] = $p_options_list[$i + 1] . '-' . $p_options_list[$i + 1];
1534 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is an array");
1537 // ----- Error log
1540 // ----- Return
1541 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1545 // ----- Reduce the index list
1547 // an end value : [0,3], [5-5], [8-10], ...
1548 // ----- Check the format of each item
1553 // ----- Explode the item
1554 $v_item_list = explode("-", $v_work_list[$j]);
1557 // ----- TBC : Here we might check that each item is a
1560 // ----- Look for single value
1562 // ----- Set the option value
1566 // ----- Set the option value
1570 // ----- Error log
1573 // ----- Return
1574 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1578 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extracted index item = [".$v_re…
1580 // ----- Look for list sort
1582 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The list should be sorted ...");
1585 // ----- TBC : An automatic sort should be writen ...
1586 // ----- Error log
1589 // ----- Return
1590 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1596 // ----- Sort the items
1599 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "List sorting is not yet write .…
1602 // ----- Next option
1606 // ----- Look for options that request no value
1614 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1617 // ----- Look for options that request an octal value
1619 // ----- Check the number of parameters
1621 // ----- Error log
1624 // ----- Return
1625 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1629 // ----- Get the value
1631 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1635 // ----- Look for options that request a call-back
1646 // ----- Check the number of parameters
1648 // ----- Error log
1651 // ----- Return
1652 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1656 // ----- Get the value
1658 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "call-back ".PclZipUtilOptionTex…
1660 // ----- Check that the value is a valid existing function
1662 // ----- Error log
1665 // ----- Return
1666 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1670 // ----- Set the attribute
1676 // ----- Error log
1683 // ----- Return
1684 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1688 // ----- Next options
1692 // ----- Look for mandatory options
1695 // ----- Look for mandatory option
1697 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Detect a mandatory option : ".P…
1698 // ----- Look if present
1700 // ----- Error log
1703 // ----- Return
1704 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1711 // ----- Return
1712 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1715 // --------------------------------------------------------------------------------
1717 // --------------------------------------------------------------------------------
1724 // --------------------------------------------------------------------------------
1727 … //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privFileDescrParseAtt", "");
1730 // ----- For each file in the list check the attributes
1732 // ----- Check if the option is supported
1734 // ----- Error log
1737 // ----- Return
1738 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1742 // ----- Look for attribute
1747 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1752 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key).…
1756 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1765 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1770 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key).…
1774 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1782 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1787 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key).…
1791 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1797 // ----- Error log
1803 // ----- Return
1804 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1808 // ----- Look for mandatory options
1811 // ----- Look for mandatory option
1813 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Detect a mandatory option : ".P…
1814 // ----- Look if present
1817 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1827 // ----- Return
1828 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1831 // --------------------------------------------------------------------------------
1833 // --------------------------------------------------------------------------------
1840 // --------------------------------------------------------------------------------
1843 … //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privFileDescrExpand", "");
1846 // ----- Create a result list
1848 // ----- Look each entry
1851 // ----- Look each entry
1853 // ----- Get filedescr
1856 // ----- Reduce the filename
1857 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filedescr before reduction :'".…
1860 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filedescr after reduction :'".$…
1862 // ----- Get type of descr
1864 // ----- Error log
1865 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$v_descr['filename']."'…
1868 // ----- Return
1869 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1873 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "This is a file");
1876 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "This is a folder");
1879 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Unsupported file type : link");
1883 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Unsupported file type : unknown…
1888 // ----- Calculate the stored filename
1889 $this->privCalculateStoredFilename($v_descr, $p_options);
1891 // ----- Add the descriptor in result list
1894 // ----- Look for folder
1896 // ----- List of items in folder
1901 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Looking for '".$v_item_handler.…
1903 // ----- Skip '.' and '..'
1908 // ----- Compose the full filename
1911 // ----- Look for different stored filename
1913 // files/sub-folders also change
1921 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to open dir '".$v_descr[…
1925 // ----- Expand each element of the list
1927 // ----- Expand
1928 … if (($v_result = $this->privFileDescrExpand($v_dirlist_descr, $p_options)) != 1) {
1929 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1933 // ----- Concat the resulting list
1934 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Merging result list (size '".si…
1936 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "merged result list is size '".s…
1938 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Nothing in this folder to expan…
1941 // ----- Free local array
1946 // ----- Get the result list
1949 // ----- Return
1950 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1953 // --------------------------------------------------------------------------------
1955 // --------------------------------------------------------------------------------
1960 // --------------------------------------------------------------------------------
1963 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCreate", "list");
1966 // ----- Magic quotes trick
1967 $this->privDisableMagicQuotes();
1969 // ----- Open the file in write mode
1970 if (($v_result = $this->privOpenFd('wb')) != 1) {
1971 // ----- Return
1972 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1976 // ----- Add the list of files
1977 $v_result = $this->privAddList($p_filedescr_list, $p_result_list, $p_options);
1979 // ----- Close
1980 $this->privCloseFd();
1982 // ----- Magic quotes trick
1983 $this->privSwapBackMagicQuotes();
1985 // ----- Return
1986 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1989 // --------------------------------------------------------------------------------
1991 // --------------------------------------------------------------------------------
1996 // --------------------------------------------------------------------------------
1999 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAdd", "list");
2002 // ----- Look if the archive exists or is empty
2003 if ((!is_file($this->zipname)) || (filesize($this->zipname) == 0)) {
2004 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive does not exist, or is e…
2006 // ----- Do a create
2007 $v_result = $this->privCreate($p_filedescr_list, $p_result_list, $p_options);
2009 // ----- Return
2010 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2013 // ----- Magic quotes trick
2014 $this->privDisableMagicQuotes();
2016 // ----- Open the zip file
2017 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
2018 if (($v_result = $this->privOpenFd('rb')) != 1) {
2019 // ----- Magic quotes trick
2020 $this->privSwapBackMagicQuotes();
2022 // ----- Return
2023 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2027 // ----- Read the central directory informations
2029 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) {
2030 $this->privCloseFd();
2031 $this->privSwapBackMagicQuotes();
2032 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2036 // ----- Go to beginning of File
2037 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($thi…
2038 @rewind($this->zip_fd);
2039 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($thi…
2041 // ----- Creates a temporay file
2042 $v_zip_temp_name = PCLZIP_TEMPORARY_DIR . uniqid('pclzip-') . '.tmp';
2044 // ----- Open the temporary file in write mode
2045 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
2047 $this->privCloseFd();
2048 $this->privSwapBackMagicQuotes();
2052 // ----- Return
2053 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2057 // ----- Copy the files from the archive to the temporary file
2062 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
2063 $v_buffer = fread($this->zip_fd, $v_read_size);
2065 $v_size -= $v_read_size;
2068 // ----- Swap the file descriptor
2071 $v_swap = $this->zip_fd;
2072 $this->zip_fd = $v_zip_temp_fd;
2075 // ----- Add the files
2077 … if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1) {
2079 $this->privCloseFd();
2081 $this->privSwapBackMagicQuotes();
2083 // ----- Return
2084 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2088 // ----- Store the offset of the central dir
2089 $v_offset = @ftell($this->zip_fd);
2090 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "New offset of central dir : $v_…
2092 // ----- Copy the block of file headers from the old archive
2096 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
2098 @fwrite($this->zip_fd, $v_buffer, $v_read_size);
2099 $v_size -= $v_read_size;
2101 // ----- Create the Central Dir files header
2104 // ----- Create the Central Dir files header
2106 // ----- Create the file header
2108 if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) {
2110 $this->privCloseFd();
2112 $this->privSwapBackMagicQuotes();
2114 // ----- Return
2115 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2121 // ----- Transform the header to a 'usable' info
2122 $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]);
2125 // ----- Zip file comment
2137 // ----- Calculate the size of the central header
2138 $v_size = @ftell($this->zip_fd) - $v_offset;
2140 // ----- Create the central dir footer
2141 …if (($v_result = $this->privWriteCentralHeader($v_count + $v_central_dir['entries'], $v_size, $v_o…
2142 // ----- Reset the file list
2144 $this->privSwapBackMagicQuotes();
2146 // ----- Return
2147 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2151 // ----- Swap back the file descriptor
2152 $v_swap = $this->zip_fd;
2153 $this->zip_fd = $v_zip_temp_fd;
2156 // ----- Close
2157 $this->privCloseFd();
2159 // ----- Close the temporary file
2162 // ----- Magic quotes trick
2163 $this->privSwapBackMagicQuotes();
2165 // ----- Delete the zip file
2167 @unlink($this->zipname);
2169 // ----- Rename the temporary file
2171 //@rename($v_zip_temp_name, $this->zipname);
2172 PclZipUtilRename($v_zip_temp_name, $this->zipname);
2174 // ----- Return
2175 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2178 // --------------------------------------------------------------------------------
2180 // --------------------------------------------------------------------------------
2184 // --------------------------------------------------------------------------------
2187 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privOpenFd", 'mode='.$p_mode…
2190 // ----- Look if already open
2191 if ($this->zip_fd != 0) {
2192 // ----- Error log
2193 …PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Zip file \'' . $this->zipname . '\' already open'…
2195 // ----- Return
2196 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2200 // ----- Open the zip file
2201 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Open file in '.$p_mode.' mode');
2202 if (($this->zip_fd = @fopen($this->zipname, $p_mode)) == 0) {
2203 // ----- Error log
2204 …PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \'' . $this->zipname . '\'…
2206 // ----- Return
2207 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2211 // ----- Return
2212 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2215 // --------------------------------------------------------------------------------
2217 // --------------------------------------------------------------------------------
2221 // --------------------------------------------------------------------------------
2224 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCloseFd", "");
2227 if ($this->zip_fd != 0)
2228 @fclose($this->zip_fd);
2229 $this->zip_fd = 0;
2231 // ----- Return
2232 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2235 // --------------------------------------------------------------------------------
2237 // --------------------------------------------------------------------------------
2249 // --------------------------------------------------------------------------------
2253 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddList", "list");
2256 // ----- Add the files
2258 … if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1) {
2259 // ----- Return
2260 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2264 // ----- Store the offset of the central dir
2265 $v_offset = @ftell($this->zip_fd);
2266 // ----- Create the Central Dir files header
2269 // ----- Create the Central Dir files header
2271 // ----- Create the file header
2273 if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) {
2274 // ----- Return
2275 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2281 // ----- Transform the header to a 'usable' info
2282 $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]);
2285 // ----- Zip file comment
2291 // ----- Calculate the size of the central header
2292 $v_size = @ftell($this->zip_fd) - $v_offset;
2294 // ----- Create the central dir footer
2295 … if (($v_result = $this->privWriteCentralHeader($v_count, $v_size, $v_offset, $v_comment)) != 1) {
2296 // ----- Reset the file list
2299 // ----- Return
2300 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2304 // ----- Return
2305 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2308 // --------------------------------------------------------------------------------
2310 // --------------------------------------------------------------------------------
2318 // --------------------------------------------------------------------------------
2321 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddFileList", "filedescr…
2325 // ----- Recuperate the current number of elt in list
2327 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Before add, list have ".$v_nb."…
2329 // ----- Loop on the files
2331 // ----- Format the filename
2335 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Looking for file '".$p_filedesc…
2337 // ----- Skip empty file names
2340 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Skip empty filename");
2344 // ----- Check the filename
2346 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$p_filedescr_list[$j]['…
2348 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2352 // ----- Look if it is a file or a dir with no all path remove option
2359 // ----- Add the file
2360 $v_result = $this->privAddFile(
2366 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2370 // ----- Store the file infos
2374 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "After add, list have ".$v_nb." …
2376 // ----- Return
2377 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2380 // --------------------------------------------------------------------------------
2382 // --------------------------------------------------------------------------------
2387 // --------------------------------------------------------------------------------
2390 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddFile", "filename='".$…
2393 // ----- Working variable
2398 // ----- Error log
2401 // ----- Return
2402 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2406 // ----- Look for a stored different filename
2409 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, 'Stored filename is NOT the same…
2412 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, 'Stored filename is the same');
2415 // ----- Set the file properties
2432 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Header external extension '".sp…
2439 $p_header['index'] = -1;
2441 // ----- Look for pre-add callback
2443 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PC…
2445 // ----- Generate a local information
2447 $this->privConvertHeader2FileInfo($p_header, $v_local_header);
2449 // ----- Call the callback
2454 // ----- Change the file status
2459 // ----- Update the informations
2463 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New stored filename is '".$p_he…
2467 // ----- Look for empty stored filename
2472 // ----- Check the path length
2477 // ----- Look if no error, or file not skipped
2479 // ----- Look for a file
2481 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "'".$p_filename."' is a file");
2482 // ----- Open the source file
2485 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2490 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File will not be compressed");
2491 // ----- Read the file content
2494 // ----- Calculate the CRC
2497 // ----- Set header parameters
2501 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File will be compressed");
2502 // ----- Read the file content
2505 // ----- Calculate the CRC
2508 // ----- Compress the file
2511 // ----- Set header parameters
2516 // ----- Look for encryption
2520 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File need to be crypted ....");
2533 // ----- Add the header to the data
2535 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Size after header : ".strlen($v…
2539 // ----- Call the header generation
2540 if (($v_result = $this->privWriteFileHeader($p_header)) != 1) {
2542 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2546 // ----- Write the compressed (or not) content
2548 $this->zip_fd,
2553 // ----- Close the file
2557 // ----- Look for a directory
2559 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "'".$p_filename."' is a folder");
2560 // ----- Look for directory last '/'
2561 if (@substr($p_header['stored_filename'], -1) != '/') {
2565 // ----- Set the file properties
2570 // ----- Call the header generation
2571 if (($v_result = $this->privWriteFileHeader($p_header)) != 1) {
2572 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2578 // ----- Look for post-add callback
2580 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[P…
2582 // ----- Generate a local information
2584 $this->privConvertHeader2FileInfo($p_header, $v_local_header);
2586 // ----- Call the callback
2591 // ----- Ignored
2595 // ----- Update the informations
2599 // ----- Return
2600 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2603 // --------------------------------------------------------------------------------
2605 // --------------------------------------------------------------------------------
2612 // --------------------------------------------------------------------------------
2615 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCalculateStoredFilename"…
2618 // ----- Working variables
2636 // ----- Look for full name change
2639 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Changing full name of '".$p_fil…
2642 // ----- Look for path and/or short name change
2644 // ----- Look for short name change
2652 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Changing short name of '".$p_fi…
2654 // ----- Calculate the stored filename
2658 // ----- Look for all path to remove
2661 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Remove all path selected change…
2663 if (substr($p_remove_dir, -1) != '/')
2689 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Path to remove is the current f…
2691 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Remove path '$p_remove_dir' in …
2696 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Result is '$v_stored_filename'"…
2700 // ----- Look for path to add
2702 if (substr($p_add_dir, -1) == "/")
2705 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Add path '$p_add_dir' in file '…
2709 // ----- Filename (reduce the path of stored name)
2712 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Stored filename will be '".$p_f…
2714 // ----- Return
2715 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2718 // --------------------------------------------------------------------------------
2720 // --------------------------------------------------------------------------------
2725 // --------------------------------------------------------------------------------
2728 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteFileHeader", 'file=…
2731 // ----- Store the offset position of the file
2732 $p_header['offset'] = ftell($this->zip_fd);
2733 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, 'File offset of the header :'.$p…
2735 // ----- Transform UNIX mtime to DOS format mdate/mtime
2736 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", …
2739 $v_mdate = (($v_date['year'] - 1980) << 9) + ($v_date['mon'] << 5) + $v_date['mday'];
2741 // ----- Packed data
2757 // ----- Write the first 148 bytes of the header in the archive
2758 fwrite($this->zip_fd, $v_binary_data, 30);
2760 // ----- Write the variable fields
2762 … fwrite($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename']));
2765 fwrite($this->zip_fd, $p_header['extra'], $p_header['extra_len']);
2768 // ----- Return
2769 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2772 // --------------------------------------------------------------------------------
2774 // --------------------------------------------------------------------------------
2779 // --------------------------------------------------------------------------------
2782 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteCentralFileHeader",…
2787 …// //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "header[$key] = ".$p_header[…
2790 // ----- Transform UNIX mtime to DOS format mdate/mtime
2791 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", …
2794 $v_mdate = (($v_date['year'] - 1980) << 9) + ($v_date['mon'] << 5) + $v_date['mday'];
2796 // ----- Packed data
2818 // ----- Write the 42 bytes of the header in the zip file
2819 fwrite($this->zip_fd, $v_binary_data, 46);
2821 // ----- Write the variable fields
2823 … fwrite($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename']));
2826 fwrite($this->zip_fd, $p_header['extra'], $p_header['extra_len']);
2829 fwrite($this->zip_fd, $p_header['comment'], $p_header['comment_len']);
2832 // ----- Return
2833 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2836 // --------------------------------------------------------------------------------
2838 // --------------------------------------------------------------------------------
2843 // --------------------------------------------------------------------------------
2846 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteCentralHeader", 'nb…
2849 // ----- Packed data
2862 // ----- Write the 22 bytes of the header in the zip file
2863 fwrite($this->zip_fd, $v_binary_data, 22);
2865 // ----- Write the variable fields
2867 fwrite($this->zip_fd, $p_comment, strlen($p_comment));
2870 // ----- Return
2871 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2874 // --------------------------------------------------------------------------------
2876 // --------------------------------------------------------------------------------
2881 // --------------------------------------------------------------------------------
2884 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privList", "list");
2887 // ----- Magic quotes trick
2888 $this->privDisableMagicQuotes();
2890 // ----- Open the zip file
2891 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
2892 if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0) {
2893 // ----- Magic quotes trick
2894 $this->privSwapBackMagicQuotes();
2896 // ----- Error log
2897 …PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \'' . $this->zipname . '\'…
2899 // ----- Return
2900 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2904 // ----- Read the central directory informations
2906 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) {
2907 $this->privSwapBackMagicQuotes();
2908 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2912 // ----- Go to beginning of Central Dir
2913 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Offset : ".$v_central_dir['offs…
2914 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($thi…
2915 @rewind($this->zip_fd);
2916 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($thi…
2917 if (@fseek($this->zip_fd, $v_central_dir['offset'])) {
2918 $this->privSwapBackMagicQuotes();
2920 // ----- Error log
2923 // ----- Return
2924 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2927 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($thi…
2929 // ----- Read each entry
2931 // ----- Read the file header
2932 if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1) {
2933 $this->privSwapBackMagicQuotes();
2934 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2939 // ----- Get the only interesting attributes
2940 $this->privConvertHeader2FileInfo($v_header, $p_list[$i]);
2944 // ----- Close the zip file
2945 $this->privCloseFd();
2947 // ----- Magic quotes trick
2948 $this->privSwapBackMagicQuotes();
2950 // ----- Return
2951 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2954 // --------------------------------------------------------------------------------
2956 // --------------------------------------------------------------------------------
2973 // --------------------------------------------------------------------------------
2976 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privConvertHeader2FileInfo",…
2979 // ----- Get the interesting attributes
2990 // ----- Return
2991 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2994 // --------------------------------------------------------------------------------
2996 // --------------------------------------------------------------------------------
3011 // --------------------------------------------------------------------------------
3014 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privExtractByRule", "path='$…
3017 // ----- Magic quotes trick
3018 $this->privDisableMagicQuotes();
3020 // ----- Check the path
3029 // ----- Reduce the path last (and duplicated) '/'
3031 // ----- Look for the path end '/'
3032 while (substr($p_path, -1) == "/") {
3033 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Destination path [$p_path] ends…
3034 $p_path = substr($p_path, 0, strlen($p_path) - 1);
3035 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Modified to [$p_path]");
3039 // ----- Look for path to remove format (should end by /)
3040 if (($p_remove_path != "") && (substr($p_remove_path, -1) != '/')) {
3044 // ----- Open the zip file
3045 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
3046 if (($v_result = $this->privOpenFd('rb')) != 1) {
3047 $this->privSwapBackMagicQuotes();
3048 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3052 // ----- Read the central directory informations
3054 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) {
3055 // ----- Close the zip file
3056 $this->privCloseFd();
3057 $this->privSwapBackMagicQuotes();
3059 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3063 // ----- Start at beginning of Central Dir
3066 // ----- Read each entry
3069 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Read next file header entry : '…
3071 // ----- Read next Central dir entry
3072 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Position before rewind : ".ftel…
3073 @rewind($this->zip_fd);
3074 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Position after rewind : ".ftell…
3075 if (@fseek($this->zip_fd, $v_pos_entry)) {
3076 // ----- Close the zip file
3077 $this->privCloseFd();
3078 $this->privSwapBackMagicQuotes();
3080 // ----- Error log
3083 // ----- Return
3084 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3087 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position after fseek : ".ftell(…
3089 // ----- Read the file header
3091 if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1) {
3092 // ----- Close the zip file
3093 $this->privCloseFd();
3094 $this->privSwapBackMagicQuotes();
3096 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3100 // ----- Store the index
3103 // ----- Store the file position
3104 $v_pos_entry = ftell($this->zip_fd);
3106 // ----- Look for the specific extract rules
3109 // ----- Look for extract by name rule
3114 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByName'");
3115 // ----- Look if the filename is in the list
3117 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Compare with file '".$p_options…
3119 // ----- Look for a directory
3120 if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") {
3121 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The searched item is a director…
3123 // ----- Look if the directory is in the filename path
3128 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The directory is in the file pa…
3132 // ----- Look for a filename
3134 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The file is the right one.");
3142 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[P…
3144 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expr…
3151 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByEreg'");
3153 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expr…
3160 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByIndex'");
3161 // ----- Look if the index is in the list
3163 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Look if index '$i' is in [".$p_…
3166 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found as part of an index range…
3170 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Do not look this index range fo…
3175 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Index range is greater than ind…
3180 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with no rule (extract a…
3184 // ----- Check compression method
3190 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unsupported compression method …
3193 // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
3198 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is sel…
3200 $this->privSwapBackMagicQuotes();
3209 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3214 // ----- Check encrypted files
3216 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unsupported file encryption");
3219 // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
3224 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is sel…
3226 $this->privSwapBackMagicQuotes();
3235 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3240 // ----- Look for real extraction
3242 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "No need for extract");
3243 $v_result = $this->privConvertHeader2FileInfo(
3248 $this->privCloseFd();
3249 $this->privSwapBackMagicQuotes();
3250 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3257 // ----- Look for real extraction
3259 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file '".$v_header['f…
3261 // ----- Go to the file position
3262 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position before rewind : ".ftel…
3263 @rewind($this->zip_fd);
3264 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell…
3265 if (@fseek($this->zip_fd, $v_header['offset'])) {
3266 // ----- Close the zip file
3267 $this->privCloseFd();
3269 $this->privSwapBackMagicQuotes();
3271 // ----- Error log
3274 // ----- Return
3275 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3278 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell(…
3280 // ----- Look for extraction as string
3282 // ----- Extracting the file
3283 $v_result1 = $this->privExtractFileAsString($v_header, $v_string);
3285 $this->privCloseFd();
3286 $this->privSwapBackMagicQuotes();
3287 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1);
3291 // ----- Get the only interesting attributes
3292 …if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted])) != 1…
3293 // ----- Close the zip file
3294 $this->privCloseFd();
3295 $this->privSwapBackMagicQuotes();
3297 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3301 // ----- Set the file content
3304 // ----- Next extracted file
3307 // ----- Look for user callback abort
3312 // ----- Look for extraction in standard output
3317 // ----- Extracting the file in standard output
3318 $v_result1 = $this->privExtractFileInOutput($v_header, $p_options);
3320 $this->privCloseFd();
3321 $this->privSwapBackMagicQuotes();
3322 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1);
3326 // ----- Get the only interesting attributes
3327 …if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) !=…
3328 $this->privCloseFd();
3329 $this->privSwapBackMagicQuotes();
3330 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3334 // ----- Look for user callback abort
3339 // ----- Look for normal extraction
3341 // ----- Extracting the file
3342 $v_result1 = $this->privExtractFile(
3350 $this->privCloseFd();
3351 $this->privSwapBackMagicQuotes();
3352 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1);
3356 // ----- Get the only interesting attributes
3357 …if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) !=…
3358 // ----- Close the zip file
3359 $this->privCloseFd();
3360 $this->privSwapBackMagicQuotes();
3362 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3366 // ----- Look for user callback abort
3374 // ----- Close the zip file
3375 $this->privCloseFd();
3376 $this->privSwapBackMagicQuotes();
3378 // ----- Return
3379 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3382 // --------------------------------------------------------------------------------
3384 // --------------------------------------------------------------------------------
3392 // --------------------------------------------------------------------------------
3395 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFile', "path='$p_…
3398 // ----- Read the file header
3399 if (($v_result = $this->privReadFileHeader($v_header)) != 1) {
3400 // ----- Return
3401 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3405 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filena…
3407 // ----- Check that the file header is coherent with $p_entry info
3408 if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) {
3412 // ----- Look for all path to remove
3414 // ----- Look for folder entry that not need to be extracted
3416 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The entry is a folder : need to…
3420 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3423 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "All path is removed");
3424 // ----- Get the basename of the path
3427 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Look for some path to remove");
3429 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The folder is the same as the r…
3431 // ----- Change the file status
3434 // ----- Return
3435 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3440 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found path '$p_remove_path' to …
3442 // ----- Remove the path
3445 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Resulting file is '".$p_entry['…
3449 // ----- Add the path
3454 // ----- Check a base_dir_restriction
3456 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Check the extract directory res…
3463 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_EXTRACT_DIR_RESTRICT…
3471 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3476 // ----- Look for pre-extract callback
3478 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PC…
3480 // ----- Generate a local information
3482 $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
3484 // ----- Call the callback
3489 // ----- Change the file status
3494 // ----- Look for abort result
3496 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extract…
3497 // ----- This status is internal and will be changed in 'skipped'
3502 // ----- Update the informations
3505 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New filename is '".$p_entry['fi…
3508 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file (with path) '".…
3510 // ----- Look if extraction should be done
3512 // ----- Look for specific actions while the file exist
3514 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$p_entry['filename']."'…
3516 // ----- Look if file is a directory
3518 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['file…
3519 // ----- Change the file status
3521 // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
3528 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is sel…
3536 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3540 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['file…
3541 // ----- Change the file status
3543 // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
3550 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is sel…
3558 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3562 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['file…
3563 // ----- Change the file status
3568 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_REPLACE_NEWER is sel…
3570 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File will not be replaced");
3573 // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
3580 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is sel…
3588 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3593 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['file…
3597 // ----- Check the directory availability and create it if necessary
3599 …(($p_entry['external'] & 0x00000010) == 0x00000010) || (substr($p_entry['filename'], -1) == '/')) {
3605 …if (($v_result = $this->privDirCheck($v_dir_to_check, (($p_entry['external'] & 0x00000010) == 0x00…
3606 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to create path for '".$p…
3608 // ----- Change the file status
3611 // ----- Return
3612 ////--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3619 // ----- Look if extraction should be done
3621 // ----- Do the extraction (if not a folder)
3623 // ----- Look for not compressed file
3625 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed fil…
3627 // ----- Opening destination file
3629 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Error while opening '".$p_entry…
3631 // ----- Change the file status
3634 // ----- Return
3635 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3639 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Read '".$p_entry['size']."' byt…
3641 // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks
3645 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Read $v_read_size bytes");
3646 $v_buffer = @fread($this->zip_fd, $v_read_size);
3652 $v_size -= $v_read_size;
3655 // ----- Closing the destination file
3658 // ----- Change the file mtime
3661 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file (C…
3662 // ----- TBC
3665 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File is encrypted");
3667 // ----- Read the encryption header
3668 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read 12 encryption header bytes…
3669 $v_encryption_header = @fread($this->zip_fd, 12);
3671 // ----- Read the encrypted & compressed file in a buffer
3672 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read '".($p_entry['compressed_s…
3673 $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']-12);
3675 // ----- Decrypt the buffer
3676 $this->privDecrypt($v_encryption_header, $v_buffer,
3677 $p_entry['compressed_size']-12, $p_entry['crc']);
3678 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Buffer is '".$v_buffer."'");
3681 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read '".$p_entry['compressed_si…
3682 // ----- Read the compressed file in a buffer (one shot)
3683 $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']);
3686 // ----- Decompress the file
3690 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to inflate compressed fi…
3692 // ----- Change the file status
3696 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3700 // ----- Opening destination file
3702 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Error while opening '".$p_entry…
3704 // ----- Change the file status
3707 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3711 // ----- Write the uncompressed data
3715 // ----- Closing the destination file
3718 // ----- Change the file mtime
3722 // ----- Look for chmod option
3724 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "chmod option activated '".$p_op…
3726 // ----- Change the mode of the file
3730 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done");
3734 // ----- Change abort status
3739 // ----- Look for post-extract callback
3741 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[P…
3743 // ----- Generate a local information
3745 $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
3747 // ----- Call the callback
3752 // ----- Look for abort result
3754 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extract…
3759 // ----- Return
3760 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3763 // --------------------------------------------------------------------------------
3765 // --------------------------------------------------------------------------------
3770 // --------------------------------------------------------------------------------
3773 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFileInOutput', ""…
3776 // ----- Read the file header
3777 if (($v_result = $this->privReadFileHeader($v_header)) != 1) {
3778 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3782 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filena…
3784 // ----- Check that the file header is coherent with $p_entry info
3785 if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) {
3789 // ----- Look for pre-extract callback
3791 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PC…
3793 // ----- Generate a local information
3795 $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
3797 // ----- Call the callback
3802 // ----- Change the file status
3807 // ----- Look for abort result
3809 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extract…
3810 // ----- This status is internal and will be changed in 'skipped'
3815 // ----- Update the informations
3818 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New filename is '".$p_entry['fi…
3821 // ----- Trace
3822 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file (with path) '".…
3824 // ----- Look if extraction should be done
3826 // ----- Do the extraction (if not a folder)
3828 // ----- Look for not compressed file
3830 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed fil…
3831 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Reading '".$p_entry['size']."' …
3833 // ----- Read the file in a buffer (one shot)
3834 $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']);
3836 // ----- Send the file to the output
3840 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file");
3841 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Reading '".$p_entry['size']."' …
3843 // ----- Read the compressed file in a buffer (one shot)
3844 $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']);
3846 // ----- Decompress the file
3850 // ----- Send the file to the output
3854 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done");
3858 // ----- Change abort status
3863 // ----- Look for post-extract callback
3865 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[P…
3867 // ----- Generate a local information
3869 $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
3871 // ----- Call the callback
3876 // ----- Look for abort result
3878 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extract…
3883 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3886 // --------------------------------------------------------------------------------
3888 // --------------------------------------------------------------------------------
3893 // --------------------------------------------------------------------------------
3896 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFileAsString', "p…
3899 // ----- Read the file header
3901 if (($v_result = $this->privReadFileHeader($v_header)) != 1) {
3902 // ----- Return
3903 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3907 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filena…
3909 // ----- Check that the file header is coherent with $p_entry info
3910 if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) {
3914 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file in string (with…
3916 // ----- Do the extraction (if not a folder)
3918 // ----- Look for not compressed file
3921 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed fil…
3922 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Reading '".$p_entry['size']."' …
3924 // ----- Reading the file
3925 $p_string = @fread($this->zip_fd, $p_entry['compressed_size']);
3927 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file (c…
3929 // ----- Reading the file
3930 $v_data = @fread($this->zip_fd, $p_entry['compressed_size']);
3932 // ----- Decompress the file
3938 // ----- Trace
3939 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done");
3944 // ----- Return
3945 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3948 // --------------------------------------------------------------------------------
3950 // --------------------------------------------------------------------------------
3955 // --------------------------------------------------------------------------------
3958 … //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadFileHeader", "");
3961 // ----- Read the 4 bytes signature
3962 $v_binary_data = @fread($this->zip_fd, 4);
3963 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary data is : '".sprintf("%0…
3965 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprint…
3967 // ----- Check signature
3969 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Invalid File header");
3971 // ----- Error log
3974 // ----- Return
3975 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3979 // ----- Read the first 42 bytes of the header
3980 $v_binary_data = fread($this->zip_fd, 26);
3982 // ----- Look for invalid block size
3986 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid block size : ".strlen($…
3988 // ----- Error log
3991 // ----- Return
3992 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3996 // ----- Extract the values
3997 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Header : '".$v_binary_data."'");
3998 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Header (Hex) : '".bin2hex($v_bi…
4001 // ----- Get filename
4002 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "File name length : ".$v_data['f…
4003 $p_header['filename'] = fread($this->zip_fd, $v_data['filename_len']);
4004 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Filename : \''.$p_header['filen…
4006 // ----- Get extra_fields
4007 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extra field length : ".$v_data[…
4009 $p_header['extra'] = fread($this->zip_fd, $v_data['extra_len']);
4013 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Extra field : \''.bin2hex($p_he…
4015 // ----- Extract properties
4017 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Version need to extract : ('.$p…
4019 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Compression method : \''.$p_hea…
4021 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Size : \''.$p_header['size'].'\…
4023 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Compressed Size : \''.$p_header…
4025 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'CRC : \''.sprintf("0x%X", $p_he…
4027 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Flag : \''.$p_header['flag'].'\…
4029 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Filename_len : \''.$p_header['f…
4031 // ----- Recuperate date in UNIX format
4035 // ----- Extract time
4040 // ----- Extract date
4045 // ----- Get UNIX date format
4048 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", …
4051 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date is actual : \''.date("d/m/…
4056 …// //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Attribut[$key] = ".$v_data[…
4059 // ----- Set the stored filename
4062 // ----- Set the status field
4065 // ----- Return
4066 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4069 // --------------------------------------------------------------------------------
4071 // --------------------------------------------------------------------------------
4076 // --------------------------------------------------------------------------------
4079 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadCentralFileHeader", …
4082 // ----- Read the 4 bytes signature
4083 $v_binary_data = @fread($this->zip_fd, 4);
4084 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary data is : '".sprintf("%0…
4086 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprint…
4088 // ----- Check signature
4090 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Invalid Central Dir File signat…
4092 // ----- Error log
4095 // ----- Return
4096 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4100 // ----- Read the first 42 bytes of the header
4101 $v_binary_data = fread($this->zip_fd, 42);
4103 // ----- Look for invalid block size
4107 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid block size : ".strlen($…
4109 // ----- Error log
4112 // ----- Return
4113 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4117 // ----- Extract the values
4118 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Header : '".$v_binary_data."'");
4119 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Header (Hex) : '".bin2hex($v_bi…
4122 // ----- Get filename
4123 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "File name length : ".$p_header[…
4125 $p_header['filename'] = fread($this->zip_fd, $p_header['filename_len']);
4127 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Filename : \''.$p_header['filen…
4129 // ----- Get extra
4130 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Extra length : ".$p_header['ext…
4132 $p_header['extra'] = fread($this->zip_fd, $p_header['extra_len']);
4134 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Extra : \''.$p_header['extra'].…
4136 // ----- Get comment
4137 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Comment length : ".$p_header['c…
4139 $p_header['comment'] = fread($this->zip_fd, $p_header['comment_len']);
4141 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Comment : \''.$p_header['commen…
4143 // ----- Extract properties
4144 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Version : \''.($p_header['versi…
4145 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Version need to extract : \''.(…
4146 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Size : \''.$p_header['size'].'\…
4147 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Compressed Size : \''.$p_header…
4148 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'CRC : \''.sprintf("0x%X", $p_he…
4149 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Flag : \''.$p_header['flag'].'\…
4150 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Offset : \''.$p_header['offset'…
4152 // ----- Recuperate date in UNIX format
4154 // ----- Extract time
4159 // ----- Extract date
4164 // ----- Get UNIX date format
4167 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Date : \''.date("d/m/y H:i:s", …
4170 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Date is actual : \''.date("d/m/…
4173 // ----- Set the stored filename
4176 // ----- Set default status to ok
4179 // ----- Look if it is a directory
4180 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Internal (Hex) : '".sprintf("Ox…
4181 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "External (Hex) : '".sprintf("Ox…
4182 if (substr($p_header['filename'], -1) == '/') {
4185 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Force folder external : \''.spr…
4188 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Header of filename : \''.$p_hea…
4190 // ----- Return
4191 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4194 // --------------------------------------------------------------------------------
4196 // --------------------------------------------------------------------------------
4203 // --------------------------------------------------------------------------------
4206 … //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCheckFileHeaders", "");
4209 // ----- Check the static values
4212 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "filename" : TBC To B…
4215 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "version_extracted" :…
4218 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "flag" : TBC To Be Co…
4221 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "compression" : TBC T…
4224 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "mtime" : TBC To Be C…
4227 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "filename_len" : TBC …
4230 // ----- Look for flag bit 3
4232 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Purpose bit flag bit 3 set !');
4233 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'File size, compression size and…
4235 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Size : \''.$p_local_header['siz…
4237 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Compressed Size : \''.$p_local_…
4239 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'CRC : \''.sprintf("0x%X", $p_lo…
4242 // ----- Return
4243 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4246 // --------------------------------------------------------------------------------
4248 // --------------------------------------------------------------------------------
4253 // --------------------------------------------------------------------------------
4256 … //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadEndCentralDir", "");
4259 // ----- Go to the end of the zip file
4260 $v_size = filesize($this->zipname);
4261 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Size of the file :$v_size");
4262 @fseek($this->zip_fd, $v_size);
4263 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position at end of zip file : \…
4264 if (@ftell($this->zip_fd) != $v_size) {
4265 // ----- Error log
4266 …rorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to go to the end of the archive \'' . $this->zipname . '\'');
4268 // ----- Return
4269 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4273 // ----- First try : look if this is an archive with no commentaries (most of the time)
4277 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Look for central dir with no co…
4278 @fseek($this->zip_fd, $v_size - 22);
4279 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position after min central posi…
4280 if (($v_pos = @ftell($this->zip_fd)) != $v_size - 22) {
4281 // ----- Error log
4282 …ZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \'' . $this->zipname . '\'');
4284 // ----- Return
4285 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4289 // ----- Read for bytes
4290 $v_binary_data = @fread($this->zip_fd, 4);
4291 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Binary data is : '".sprintf("%0…
4293 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprint…
4295 // ----- Check signature
4297 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found central dir at the defaul…
4301 $v_pos = ftell($this->zip_fd);
4304 // ----- Go back to the maximum possible size of the Central Dir End Record
4306 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Start extended search of end ce…
4310 @fseek($this->zip_fd, $v_size - $v_maximum_size);
4311 if (@ftell($this->zip_fd) != $v_size - $v_maximum_size) {
4312 // ----- Error log
4313 …ZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \'' . $this->zipname . '\'');
4315 // ----- Return
4316 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4319 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position after max central posi…
4321 // ----- Read byte per byte in order to find the signature
4322 $v_pos = ftell($this->zip_fd);
4325 // ----- Read a byte
4326 $v_byte = @fread($this->zip_fd, 1);
4328 // ----- Add the byte
4331 // ----- Compare the bytes
4333 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Found End Central Dir signature…
4341 // ----- Look if not found end of central dir
4343 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to find End of Central D…
4345 // ----- Error log
4348 // ----- Return
4349 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4354 // ----- Read the first 18 bytes of the header
4355 $v_binary_data = fread($this->zip_fd, 18);
4357 // ----- Look for invalid block size
4359 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid End of Central Dir Reco…
4361 // ----- Error log
4364 // ----- Return
4365 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4369 // ----- Extract the values
4370 …////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Central Dir Record : '".$v_bi…
4371 …////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Central Dir Record (Hex) : '"…
4374 // ----- Check the global size
4375 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Comment length : ".$v_data['com…
4377 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The central dir is not at the e…
4379 // ----- Removed in release 2.2 see readme file
4384 // ----- Error log
4391 // ----- Return
4392 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4397 // ----- Get comment
4399 $p_central_dir['comment'] = fread($this->zip_fd, $v_data['comment_size']);
4401 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Comment : \''.$p_central_dir['c…
4404 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Nb of entries : \''.$p_central_…
4406 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Nb of entries for this disk : \…
4408 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Offset of Central Dir : \''.$p_…
4410 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Size of Central Dir : \''.$p_ce…
4412 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Disk number : \''.$p_central_di…
4414 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Start disk number : \''.$p_cent…
4418 …// //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "central_dir[$key] = ".$p_ce…
4421 // ----- Return
4422 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4425 // --------------------------------------------------------------------------------
4427 // --------------------------------------------------------------------------------
4432 // --------------------------------------------------------------------------------
4435 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDeleteByRule", "");
4438 // ----- Open the zip file
4439 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
4440 if (($v_result = $this->privOpenFd('rb')) != 1) {
4441 // ----- Return
4442 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4446 // ----- Read the central directory informations
4448 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) {
4449 $this->privCloseFd();
4450 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4454 // ----- Go to beginning of File
4455 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($thi…
4456 @rewind($this->zip_fd);
4457 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($thi…
4459 // ----- Scan all the files
4460 // ----- Start at beginning of Central Dir
4462 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position before rewind : ".ftel…
4463 @rewind($this->zip_fd);
4464 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell…
4465 if (@fseek($this->zip_fd, $v_pos_entry)) {
4466 // ----- Close the zip file
4467 $this->privCloseFd();
4469 // ----- Error log
4472 // ----- Return
4473 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4476 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell(…
4478 // ----- Read each entry
4482 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Read next file header entry (in…
4484 // ----- Read the file header
4486 … if (($v_result = $this->privReadCentralFileHeader($v_header_list[$v_nb_extracted])) != 1) {
4487 // ----- Close the zip file
4488 $this->privCloseFd();
4490 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4494 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename (index '$i') : '".$v_h…
4496 // ----- Store the index
4499 // ----- Look for the specific extract rules
4502 // ----- Look for extract by name rule
4507 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByName'");
4508 // ----- Look if the filename is in the list
4510 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Compare with file '".$p_options…
4512 // ----- Look for a directory
4513 if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") {
4514 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The searched item is a director…
4516 // ----- Look if the directory is in the filename path
4521 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The directory is in the file pa…
4527 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The entry is the searched direc…
4531 // ----- Look for a filename
4533 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The file is the right one.");
4541 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[P…
4543 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expr…
4550 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByEreg'");
4552 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expr…
4559 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByIndex'");
4560 // ----- Look if the index is in the list
4562 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Look if index '$i' is in [".$p_…
4565 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found as part of an index range…
4569 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Do not look this index range fo…
4574 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Index range is greater than ind…
4579 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "No argument mean remove all fil…
4583 // ----- Look for deletion
4585 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$v_header_list[$v_nb_ex…
4588 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$v_header_list[$v_nb_ex…
4593 // ----- Look if something need to be deleted
4595 // ----- Creates a temporay file
4596 $v_zip_temp_name = PCLZIP_TEMPORARY_DIR . uniqid('pclzip-') . '.tmp';
4597 // ----- Creates a temporary zip archive
4599 // ----- Open the temporary zip file in write mode
4600 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary write mode"…
4601 if (($v_result = $v_temp_zip->privOpenFd('wb')) != 1) {
4602 $this->privCloseFd();
4604 // ----- Return
4605 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4608 // ----- Look which file need to be kept
4610 // ----- Look which file need to be kept
4612 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Keep entry index '$i' : '".$v_h…
4614 // ----- Calculate the position of the header
4615 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Offset='". $v_header_list[$i]['…
4616 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position before rewind : ".ftel…
4617 @rewind($this->zip_fd);
4618 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell…
4619 if (@fseek($this->zip_fd, $v_header_list[$i]['offset'])) {
4620 // ----- Close the zip file
4621 $this->privCloseFd();
4622 $v_temp_zip->privCloseFd();
4625 // ----- Error log
4628 // ----- Return
4629 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4632 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell(…
4634 // ----- Read the file header
4636 if (($v_result = $this->privReadFileHeader($v_local_header)) != 1) {
4637 // ----- Close the zip file
4638 $this->privCloseFd();
4639 $v_temp_zip->privCloseFd();
4642 // ----- Return
4643 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4647 // ----- Check that local file header is same as central file header
4649 $this->privCheckFileHeaders(
4658 // ----- Write the file header
4659 if (($v_result = $v_temp_zip->privWriteFileHeader($v_header_list[$i])) != 1) {
4660 // ----- Close the zip file
4661 $this->privCloseFd();
4662 $v_temp_zip->privCloseFd();
4665 // ----- Return
4666 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4669 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Offset for this file is '".$v_h…
4671 // ----- Read/write the data block
4672 …if (($v_result = PclZipUtilCopyBlock($this->zip_fd, $v_temp_zip->zip_fd, $v_header_list[$i]['compr…
4673 // ----- Close the zip file
4674 $this->privCloseFd();
4675 $v_temp_zip->privCloseFd();
4678 // ----- Return
4679 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4683 // ----- Store the offset of the central dir
4684 $v_offset = @ftell($v_temp_zip->zip_fd);
4685 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "New offset of central dir : $v_…
4686 // ----- Re-Create the Central Dir files header
4687 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Creates the new central directo…
4689 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "New offset of central dir : $v_…
4690 // ----- Re-Create the Central Dir files header
4691 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Creates the new central directo…
4693 // ----- Create the file header
4694 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Offset of file : ".$v_header_li…
4695 … if (($v_result = $v_temp_zip->privWriteCentralFileHeader($v_header_list[$i])) != 1) {
4696 $v_temp_zip->privCloseFd();
4697 $this->privCloseFd();
4700 // ----- Return
4701 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4705 // ----- Transform the header to a 'usable' info
4706 $v_temp_zip->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]);
4708 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Creates the central directory f…
4709 // ----- Zip file comment
4714 // ----- Calculate the size of the central header
4715 $v_size = @ftell($v_temp_zip->zip_fd) - $v_offset;
4716 // ----- Create the central dir footer
4717 …if (($v_result = $v_temp_zip->privWriteCentralHeader(count($v_header_list), $v_size, $v_offset, $v…
4718 // ----- Reset the file list
4720 $v_temp_zip->privCloseFd();
4721 $this->privCloseFd();
4724 // ----- Return
4725 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4728 // ----- Close
4729 $v_temp_zip->privCloseFd();
4730 $this->privCloseFd();
4731 // ----- Delete the zip file
4733 @unlink($this->zipname);
4734 // ----- Rename the temporary file
4736 //@rename($v_zip_temp_name, $this->zipname);
4737 PclZipUtilRename($v_zip_temp_name, $this->zipname);
4738 // ----- Destroy the temporary archive
4741 $this->privCloseFd();
4742 if (($v_result = $this->privOpenFd('wb')) != 1) {
4743 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4746 if (($v_result = $this->privWriteCentralHeader(0, 0, 0, '')) != 1) {
4747 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4750 $this->privCloseFd();
4753 // ----- Return
4754 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4757 // --------------------------------------------------------------------------------
4759 // --------------------------------------------------------------------------------
4768 // -1 : Unable to create directory
4769 // --------------------------------------------------------------------------------
4774 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDirCheck", "entry='$p_di…
4776 // ----- Remove the final '/'
4777 if (($p_is_dir) && (substr($p_dir, -1) == '/')) {
4778 $p_dir = substr($p_dir, 0, strlen($p_dir) - 1);
4780 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Looking for entry '$p_dir'");
4782 // ----- Check the directory availability
4784 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, "'$p_dir' is a directory");
4788 // ----- Extract parent directory
4790 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Parent directory is '$p_parent_…
4792 // ----- Just a check
4794 // ----- Look for parent directory
4796 if (($v_result = $this->privDirCheck($p_parent_dir)) != 1) {
4797 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4803 // ----- Create the directory
4804 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Create directory '$p_dir'");
4806 // ----- Error log
4809 // ----- Return
4810 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4814 // ----- Return
4815 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result, "Directory '$p_dir' created"…
4818 // --------------------------------------------------------------------------------
4820 // --------------------------------------------------------------------------------
4826 // --------------------------------------------------------------------------------
4829 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privMerge", "archive='".$p_a…
4832 // ----- Look if the archive_to_add exists
4833 if (!is_file($p_archive_to_add->zipname)) {
4834 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive to add does not exist. …
4836 // ----- Nothing to merge, so merge is a success
4839 // ----- Return
4840 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4844 // ----- Look if the archive exists
4845 if (!is_file($this->zipname)) {
4846 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive does not exist, duplica…
4848 // ----- Do a duplicate
4849 $v_result = $this->privDuplicate($p_archive_to_add->zipname);
4851 // ----- Return
4852 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4856 // ----- Open the zip file
4857 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
4858 if (($v_result = $this->privOpenFd('rb')) != 1) {
4859 // ----- Return
4860 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4864 // ----- Read the central directory informations
4866 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) {
4867 $this->privCloseFd();
4868 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4872 // ----- Go to beginning of File
4873 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in zip : ".ftell($this
4874 @rewind($this->zip_fd);
4875 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in zip : ".ftell($this
4877 // ----- Open the archive_to_add file
4878 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open archive_to_add in binary r…
4879 if (($v_result = $p_archive_to_add->privOpenFd('rb')) != 1) {
4880 $this->privCloseFd();
4882 // ----- Return
4883 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4887 // ----- Read the central directory informations
4889 if (($v_result = $p_archive_to_add->privReadEndCentralDir($v_central_dir_to_add)) != 1) {
4890 $this->privCloseFd();
4891 $p_archive_to_add->privCloseFd();
4893 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4897 // ----- Go to beginning of File
4898 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in archive_to_add : ".…
4899 @rewind($p_archive_to_add->zip_fd);
4900 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in archive_to_add : ".…
4902 // ----- Creates a temporay file
4903 $v_zip_temp_name = PCLZIP_TEMPORARY_DIR . uniqid('pclzip-') . '.tmp';
4905 // ----- Open the temporary file in write mode
4906 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
4908 $this->privCloseFd();
4909 $p_archive_to_add->privCloseFd();
4913 // ----- Return
4914 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4918 // ----- Copy the files from the archive to the temporary file
4923 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
4924 $v_buffer = fread($this->zip_fd, $v_read_size);
4926 $v_size -= $v_read_size;
4929 // ----- Copy the files from the archive_to_add into the temporary file
4933 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
4934 $v_buffer = fread($p_archive_to_add->zip_fd, $v_read_size);
4936 $v_size -= $v_read_size;
4939 // ----- Store the offset of the central dir
4941 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "New offset of central dir : $v_…
4943 // ----- Copy the block of file headers from the old archive
4947 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
4948 $v_buffer = @fread($this->zip_fd, $v_read_size);
4950 $v_size -= $v_read_size;
4953 // ----- Copy the block of file headers from the archive_to_add
4957 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
4958 $v_buffer = @fread($p_archive_to_add->zip_fd, $v_read_size);
4960 $v_size -= $v_read_size;
4963 // ----- Merge the file comments
4966 // ----- Calculate the size of the (new) central header
4967 $v_size = @ftell($v_zip_temp_fd) - $v_offset;
4969 // ----- Swap the file descriptor
4972 $v_swap = $this->zip_fd;
4973 $this->zip_fd = $v_zip_temp_fd;
4976 // ----- Create the central dir footer
4977 …if (($v_result = $this->privWriteCentralHeader($v_central_dir['entries'] + $v_central_dir_to_add['…
4978 $this->privCloseFd();
4979 $p_archive_to_add->privCloseFd();
4981 $this->zip_fd = null;
4983 // ----- Reset the file list
4986 // ----- Return
4987 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4991 // ----- Swap back the file descriptor
4992 $v_swap = $this->zip_fd;
4993 $this->zip_fd = $v_zip_temp_fd;
4996 // ----- Close
4997 $this->privCloseFd();
4998 $p_archive_to_add->privCloseFd();
5000 // ----- Close the temporary file
5003 // ----- Delete the zip file
5005 @unlink($this->zipname);
5007 // ----- Rename the temporary file
5009 //@rename($v_zip_temp_name, $this->zipname);
5010 PclZipUtilRename($v_zip_temp_name, $this->zipname);
5012 // ----- Return
5013 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5016 // --------------------------------------------------------------------------------
5018 // --------------------------------------------------------------------------------
5023 // --------------------------------------------------------------------------------
5026 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDuplicate", "archive_fil…
5029 // ----- Look if the $p_archive_filename exists
5031 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive to duplicate does not e…
5033 // ----- Nothing to duplicate, so duplicate is a success.
5036 // ----- Return
5037 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5041 // ----- Open the zip file
5042 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
5043 if (($v_result = $this->privOpenFd('wb')) != 1) {
5044 // ----- Return
5045 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5049 // ----- Open the temporary file in write mode
5050 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
5052 $this->privCloseFd();
5056 // ----- Return
5057 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
5061 // ----- Copy the files from the archive to the temporary file
5066 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read $v_read_size bytes");
5068 @fwrite($this->zip_fd, $v_buffer, $v_read_size);
5069 $v_size -= $v_read_size;
5072 // ----- Close
5073 $this->privCloseFd();
5075 // ----- Close the temporary file
5078 // ----- Return
5079 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5082 // --------------------------------------------------------------------------------
5084 // --------------------------------------------------------------------------------
5088 // --------------------------------------------------------------------------------
5094 $this->error_code = $p_error_code;
5095 $this->error_string = $p_error_string;
5098 // --------------------------------------------------------------------------------
5100 // --------------------------------------------------------------------------------
5104 // --------------------------------------------------------------------------------
5110 $this->error_code = 0;
5111 $this->error_string = '';
5114 // --------------------------------------------------------------------------------
5116 // --------------------------------------------------------------------------------
5121 // --------------------------------------------------------------------------------
5124 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privDecrypt', "size=".$p_siz…
5127 // ----- To Be Modified ;-)
5138 // ----- Return
5139 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5142 // --------------------------------------------------------------------------------
5144 // --------------------------------------------------------------------------------
5149 // --------------------------------------------------------------------------------
5152 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privDisableMagicQuotes', "");
5155 // ----- Look if function exists
5160 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Functions *et_magic_quotes_runt…
5161 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5165 // ----- Look if already done
5166 if ($this->magic_quotes_status != -1) {
5167 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "magic_quote already disabled");
5168 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5172 // ----- Get and memorize the magic_quote value
5173 $this->magic_quotes_status = @get_magic_quotes_runtime();
5174 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Current magic_quotes_runtime st…
5176 // ----- Disable magic_quotes
5177 if ($this->magic_quotes_status == 1) {
5178 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Disable magic_quotes");
5182 // ----- Return
5183 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5186 // --------------------------------------------------------------------------------
5188 // --------------------------------------------------------------------------------
5193 // --------------------------------------------------------------------------------
5196 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privSwapBackMagicQuotes', ""…
5199 // ----- Look if function exists
5204 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Functions *et_magic_quotes_runt…
5205 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5209 // ----- Look if something to do
5210 if ($this->magic_quotes_status != -1) {
5211 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "magic_quote not modified");
5212 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5216 // ----- Swap back magic_quotes
5217 if ($this->magic_quotes_status == 1) {
5218 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Enable back magic_quotes");
5219 @set_magic_quotes_runtime($this->magic_quotes_status);
5222 // ----- Return
5223 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5226 // --------------------------------------------------------------------------------
5229 // --------------------------------------------------------------------------------
5231 // --------------------------------------------------------------------------------
5236 // --------------------------------------------------------------------------------
5239 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilPathReduction", "dir='$p_d…
5242 // ----- Look for not empty path
5244 // ----- Explode path by directory names
5247 // ----- Study directories from last to first
5249 for ($i = count($v_list) - 1; $i >= 0; $i--) {
5250 // ----- Look for current path
5252 // ----- Ignore this directory
5257 // ----- First '/' i.e. root slash
5261 // ----- It is an invalid path, so the path is not modified
5264 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Invalid path is unchanged");
5267 } elseif ($i == (count($v_list) - 1)) {
5270 // ----- Ignore only the double '//' in path,
5274 // ----- Look for item to skip
5275 $v_skip--;
5277 $v_result = $v_list[$i] . ($i != count($v_list) - 1 ? "/" . $v_result : "");
5281 // ----- Look for skip
5285 $v_skip--;
5290 // ----- Return
5291 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5294 // --------------------------------------------------------------------------------
5296 // --------------------------------------------------------------------------------
5300 // said in an other way, if the file or sub-dir $p_path is inside the dir
5310 // --------------------------------------------------------------------------------
5313 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilPathInclusion", "dir='$p_d…
5316 // ----- Look for path beginning by ./
5322 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Replacing ./ by full path in p_…
5329 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Replacing ./ by full path in p_…
5332 // ----- Explode dir and path by directory separator
5338 // ----- Study directories paths
5342 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Working on dir($i)='".$v_list_d…
5344 // ----- Look for empty dir (path reduction)
5354 // ----- Compare the items
5356 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Items ($i,$j) are different");
5360 // ----- Next items
5365 // ----- Look if everything seems to be the same
5367 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Look for tie break");
5368 // ----- Skip all the empty items
5371 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Looking on dir($i)='".($i < $v_…
5374 // ----- There are exactly the same
5377 // ----- The path is shorter than the dir
5382 // ----- Return
5383 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5386 // --------------------------------------------------------------------------------
5388 // --------------------------------------------------------------------------------
5398 // --------------------------------------------------------------------------------
5401 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilCopyBlock", "size=$p_size,…
5405 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Src offset before read :".(@fte…
5406 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Dest offset before write :".(@f…
5409 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5412 $p_size -= $v_read_size;
5414 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Src offset after read :".(@ftel…
5415 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Dest offset after write :".(@ft…
5419 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5422 $p_size -= $v_read_size;
5427 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5430 $p_size -= $v_read_size;
5435 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5438 $p_size -= $v_read_size;
5442 // ----- Return
5443 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5446 // --------------------------------------------------------------------------------
5448 // --------------------------------------------------------------------------------
5459 // --------------------------------------------------------------------------------
5462 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilRename", "source=$p_src, d…
5465 // ----- Try to rename the files
5467 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to rename file, try copy+u…
5469 // ----- Try to copy & unlink the src
5471 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to copy file");
5474 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to unlink old filename");
5479 // ----- Return
5480 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5483 // --------------------------------------------------------------------------------
5485 // --------------------------------------------------------------------------------
5493 // --------------------------------------------------------------------------------
5496 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilOptionText", "option='".$p…
5507 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_key);
5514 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5517 // --------------------------------------------------------------------------------
5519 // --------------------------------------------------------------------------------
5529 // --------------------------------------------------------------------------------
5533 // ----- Look for potential disk letter
5537 // ----- Change potential windows directory separator
5544 // --------------------------------------------------------------------------------