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

2 // --------------------------------------------------------------------------------
3 // PhpConcept Library - Zip Module 2.5
4 // --------------------------------------------------------------------------------
5 // License GNU/LGPL - Vincent Blavet - March 2006
7 // --------------------------------------------------------------------------------
24 // --------------------------------------------------------------------------------
26 // --------------------------------------------------------------------------------
28 // ----- Constants
31 // ----- File list separator
43 // ----- Error configuration
50 // ----- Optional static temporary directory
54 // - MUST BE terminated by a '/'.
55 // - MUST be a valid, already created directory
61 // --------------------------------------------------------------------------------
63 // --------------------------------------------------------------------------------
65 // ----- Global variables
68 // ----- Error codes
69 // -1 : Unable to open file in binary write mode
70 // -2 : Unable to open file in binary read mode
71 // -3 : Invalid parameters
72 // -4 : File does not exist
73 // -5 : Filename is too long (max. 255)
74 // -6 : Not a valid zip file
75 // -7 : Invalid extracted file size
76 // -8 : Unable to create directory
77 // -9 : Invalid archive extension
78 // -10 : Invalid archive format
79 // -11 : Unable to delete file (unlink)
80 // -12 : Unable to rename file (rename)
81 // -13 : Invalid header checksum
82 // -14 : Invalid archive size
85 define( 'PCLZIP_ERR_WRITE_OPEN_FAIL', -1 );
86 define( 'PCLZIP_ERR_READ_OPEN_FAIL', -2 );
87 define( 'PCLZIP_ERR_INVALID_PARAMETER', -3 );
88 define( 'PCLZIP_ERR_MISSING_FILE', -4 );
89 define( 'PCLZIP_ERR_FILENAME_TOO_LONG', -5 );
90 define( 'PCLZIP_ERR_INVALID_ZIP', -6 );
91 define( 'PCLZIP_ERR_BAD_EXTRACTED_FILE', -7 );
92 define( 'PCLZIP_ERR_DIR_CREATE_FAIL', -8 );
93 define( 'PCLZIP_ERR_BAD_EXTENSION', -9 );
94 define( 'PCLZIP_ERR_BAD_FORMAT', -10 );
95 define( 'PCLZIP_ERR_DELETE_FILE_FAIL', -11 );
96 define( 'PCLZIP_ERR_RENAME_FILE_FAIL', -12 );
97 define( 'PCLZIP_ERR_BAD_CHECKSUM', -13 );
98 define( 'PCLZIP_ERR_INVALID_ARCHIVE_ZIP', -14 );
99 define( 'PCLZIP_ERR_MISSING_OPTION_VALUE', -15 );
100 define( 'PCLZIP_ERR_INVALID_OPTION_VALUE', -16 );
101 define( 'PCLZIP_ERR_ALREADY_A_DIRECTORY', -17 );
102 define( 'PCLZIP_ERR_UNSUPPORTED_COMPRESSION', -18 );
103 define( 'PCLZIP_ERR_UNSUPPORTED_ENCRYPTION', -19 );
104 define( 'PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE', -20 );
105 define( 'PCLZIP_ERR_DIRECTORY_RESTRICTION', -21 );
107 // ----- Options values
130 // ----- File description attributes
135 // ----- Call backs values
147 // --------------------------------------------------------------------------------
160 // --------------------------------------------------------------------------------
163 // ----- Filename of the zip file
166 // ----- File descriptor of the zip file
169 // ----- Internal error handling
173 // ----- Current status of the magic_quotes_runtime
178 // --------------------------------------------------------------------------------
185 // --------------------------------------------------------------------------------
188 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::PclZip', "zipname=$p_zipname…
190 // ----- Tests the zlib
193 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 1, "zlib extension seems to be miss…
197 // ----- Set the attributes
198 $this->zipname = $p_zipname;
199 $this->zip_fd = 0;
200 $this->magic_quotes_status = -1;
202 // ----- Return
203 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 1);
206 // --------------------------------------------------------------------------------
208 // --------------------------------------------------------------------------------
244 // --------------------------------------------------------------------------------
247 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::create', "filelist='$p_filel…
250 // ----- Reset the error handler
251 $this->privErrorReset();
253 // ----- Set default values
257 // ----- Look for variable options arguments
259 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the…
261 // ----- Look for arguments
263 // ----- Get the arguments
266 // ----- Remove from the options list the first argument
268 $v_size--;
270 // ----- Look for first arg
272 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options detect…
274 // ----- Parse the options
275 $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,
286 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
291 // ----- Look for 2 args
295 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
297 // ----- Get the first argument
300 // ----- Look for the optional second argument
307 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
313 // ----- Init
319 // ----- Look if the $p_filelist is really an array
322 // ----- Look if the first element is also an array
328 // ----- The list is a list of string names
334 // ----- Look if the $p_filelist is a string
336 // ----- Create a list from the string
340 // ----- Invalid variable type for $p_filelist
343 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
347 // ----- Reformat the string list
354 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Ignore an empty filename");
359 // ----- For each file in the list check the attributes
366 $v_result = $this->privFileDescrParseAtt($v_entry,
371 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
376 // ----- Expand the filelist (expand directories)
377 $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options);
379 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
383 // ----- Call the create fct
384 $v_result = $this->privCreate($v_filedescr_list, $p_result_list, $v_options);
386 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
390 // ----- Return
391 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_result_list);
394 // --------------------------------------------------------------------------------
396 // --------------------------------------------------------------------------------
430 // --------------------------------------------------------------------------------
433 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::add', "filelist='$p_filelist…
436 // ----- Reset the error handler
437 $this->privErrorReset();
439 // ----- Set default values
443 // ----- Look for variable options arguments
445 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the…
447 // ----- Look for arguments
449 // ----- Get the arguments
452 // ----- Remove form the options list the first argument
454 $v_size--;
456 // ----- Look for first arg
458 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options detect…
460 // ----- Parse the options
461 $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,
474 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
479 // ----- Look for 2 args
483 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
485 // ----- Get the first argument
488 // ----- Look for the optional second argument
493 // ----- Error log
496 // ----- Return
497 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
503 // ----- Init
509 // ----- Look if the $p_filelist is really an array
512 // ----- Look if the first element is also an array
518 // ----- The list is a list of string names
524 // ----- Look if the $p_filelist is a string
526 // ----- Create a list from the string
530 // ----- Invalid variable type for $p_filelist
533 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
537 // ----- Reformat the string list
544 // ----- For each file in the list check the attributes
551 $v_result = $this->privFileDescrParseAtt($v_entry,
556 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
561 // ----- Expand the filelist (expand directories)
562 $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options);
564 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
568 // ----- Call the create fct
569 $v_result = $this->privAdd($v_filedescr_list, $p_result_list, $v_options);
571 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
575 // ----- Return
576 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_result_list);
579 // --------------------------------------------------------------------------------
581 // --------------------------------------------------------------------------------
621 // --------------------------------------------------------------------------------
624 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::listContent', "");
627 // ----- Reset the error handler
628 $this->privErrorReset();
630 // ----- Check archive
631 if (!$this->privCheckFormat()) {
632 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
636 // ----- Call the extracting fct
638 if (($v_result = $this->privList($p_list)) != 1)
641 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
645 // ----- Return
646 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
649 // --------------------------------------------------------------------------------
651 // --------------------------------------------------------------------------------
682 // --------------------------------------------------------------------------------
685 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::extract", "");
688 // ----- Reset the error handler
689 $this->privErrorReset();
691 // ----- Check archive
692 if (!$this->privCheckFormat()) {
693 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
697 // ----- Set default values
704 // ----- Look for variable options arguments
706 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the…
708 // ----- Default values for option
711 // ----- Look for arguments
713 // ----- Get the arguments
716 // ----- Look for first arg
718 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options");
720 // ----- Parse the options
721 $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,
740 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
744 // ----- Set the arguments
755 // ----- Check for '/' in last path char
756 if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) {
763 // ----- Look for 2 args
767 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
769 // ----- Get the first argument
772 // ----- Look for the optional second argument
777 // ----- Error log
780 // ----- Return
781 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
787 // ----- Trace
788 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "path='$v_path', remove_path='$v…
790 // ----- Call the extracting fct
792 $v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path,
796 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
800 // ----- Return
801 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
804 // --------------------------------------------------------------------------------
807 // --------------------------------------------------------------------------------
820 // extract. The form of the string is "0,4-6,8-12" with only numbers
821 // and '-' for range or ',' to separate ranges. No spaces or ';'
842 // --------------------------------------------------------------------------------
846 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::extractByIndex", "index='$p_…
849 // ----- Reset the error handler
850 $this->privErrorReset();
852 // ----- Check archive
853 if (!$this->privCheckFormat()) {
854 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
858 // ----- Set default values
865 // ----- Look for variable options arguments
867 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the…
869 // ----- Default values for option
872 // ----- Look for arguments
874 // ----- Get the arguments
877 // ----- Remove form the options list the first argument
879 $v_size--;
881 // ----- Look for first arg
883 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options");
885 // ----- Parse the options
886 $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,
900 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
904 // ----- Set the arguments
915 // ----- Check for '/' in last path char
916 if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) {
923 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Option PCLZIP_OPT_EXTRACT_AS_ST…
926 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Option PCLZIP_OPT_EXTRACT_AS_ST…
930 // ----- Look for 2 args
934 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
936 // ----- Get the first argument
939 // ----- Look for the optional second argument
944 // ----- Error log
947 // ----- Return
948 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
954 // ----- Trace
955 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "index='$p_index', path='$v_path…
957 // ----- Trick
962 $v_result = $this->privParseOptions($v_arg_trick, sizeof($v_arg_trick), $v_options_trick,
965 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
970 // ----- Call the extracting fct
971 …if (($v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, $v_remove_all_path, $v…
972 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
976 // ----- Return
977 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
980 // --------------------------------------------------------------------------------
982 // --------------------------------------------------------------------------------
999 // --------------------------------------------------------------------------------
1002 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::delete", "");
1005 // ----- Reset the error handler
1006 $this->privErrorReset();
1008 // ----- Check archive
1009 if (!$this->privCheckFormat()) {
1010 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
1014 // ----- Set default values
1017 // ----- Look for variable options arguments
1019 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the…
1021 // ----- Look for arguments
1023 // ----- Get the arguments
1026 // ----- Parse the options
1027 $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,
1033 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
1038 // ----- Magic quotes trick
1039 $this->privDisableMagicQuotes();
1041 // ----- Call the delete fct
1043 if (($v_result = $this->privDeleteByRule($v_list, $v_options)) != 1) {
1044 $this->privSwapBackMagicQuotes();
1046 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
1050 // ----- Magic quotes trick
1051 $this->privSwapBackMagicQuotes();
1053 // ----- Return
1054 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_list);
1057 // --------------------------------------------------------------------------------
1059 // --------------------------------------------------------------------------------
1064 // --------------------------------------------------------------------------------
1067 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::deleteByIndex", "index='$p_i…
1069 $p_list = $this->delete(PCLZIP_OPT_BY_INDEX, $p_index);
1071 // ----- Return
1072 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
1075 // --------------------------------------------------------------------------------
1077 // --------------------------------------------------------------------------------
1090 // --------------------------------------------------------------------------------
1093 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::properties", "");
1095 // ----- Reset the error handler
1096 $this->privErrorReset();
1098 // ----- Magic quotes trick
1099 $this->privDisableMagicQuotes();
1101 // ----- Check archive
1102 if (!$this->privCheckFormat()) {
1103 $this->privSwapBackMagicQuotes();
1104 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
1108 // ----- Default properties
1114 // ----- Look if file exists
1115 if (@is_file($this->zipname))
1117 // ----- Open the zip file
1118 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
1119 if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0)
1121 $this->privSwapBackMagicQuotes();
1123 // ----- Error log
1124 …PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in …
1126 // ----- Return
1127 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), 0);
1131 // ----- Read the central directory informations
1133 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
1135 $this->privSwapBackMagicQuotes();
1136 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
1140 // ----- Close the zip file
1141 $this->privCloseFd();
1143 // ----- Set the user attributes
1149 // ----- Magic quotes trick
1150 $this->privSwapBackMagicQuotes();
1152 // ----- Return
1153 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_prop);
1156 // --------------------------------------------------------------------------------
1158 // --------------------------------------------------------------------------------
1169 // --------------------------------------------------------------------------------
1172 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::duplicate", "");
1175 // ----- Reset the error handler
1176 $this->privErrorReset();
1178 // ----- Look if the $p_archive is a PclZip object
1181 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The parameter is valid PclZip o…
1183 // ----- Duplicate the archive
1184 $v_result = $this->privDuplicate($p_archive->zipname);
1187 // ----- Look if the $p_archive is a string (so a filename)
1190 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The parameter is a filename '$p…
1192 // ----- Check that $p_archive is a valid zip file
1195 // ----- Error log
1200 // ----- Duplicate the archive
1201 $v_result = $this->privDuplicate($p_archive);
1205 // ----- Invalid variable
1208 // ----- Error log
1213 // ----- Return
1214 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1217 // --------------------------------------------------------------------------------
1219 // --------------------------------------------------------------------------------
1232 // --------------------------------------------------------------------------------
1235 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::merge", "");
1238 // ----- Reset the error handler
1239 $this->privErrorReset();
1241 // ----- Check archive
1242 if (!$this->privCheckFormat()) {
1243 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
1247 // ----- Look if the $p_archive_to_add is a PclZip object
1250 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The parameter is valid PclZip o…
1252 // ----- Merge the archive
1253 $v_result = $this->privMerge($p_archive_to_add);
1256 // ----- Look if the $p_archive_to_add is a string (so a filename)
1259 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The parameter is a filename");
1261 // ----- Create a temporary archive
1264 // ----- Merge the archive
1265 $v_result = $this->privMerge($v_object_archive);
1268 // ----- Invalid variable
1271 // ----- Error log
1276 // ----- Return
1277 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1280 // --------------------------------------------------------------------------------
1284 // --------------------------------------------------------------------------------
1288 // --------------------------------------------------------------------------------
1295 return($this->error_code);
1298 // --------------------------------------------------------------------------------
1300 // --------------------------------------------------------------------------------
1304 // --------------------------------------------------------------------------------
1330 if (isset($v_name[$this->error_code])) {
1331 $v_value = $v_name[$this->error_code];
1338 return($v_value.' ('.$this->error_code.')');
1344 // --------------------------------------------------------------------------------
1346 // --------------------------------------------------------------------------------
1350 // --------------------------------------------------------------------------------
1358 return($this->errorName(true)." : ".$this->error_string);
1361 return($this->error_string." [code ".$this->error_code."]");
1365 // --------------------------------------------------------------------------------
1368 // --------------------------------------------------------------------------------
1372 // --------------------------------------------------------------------------------
1376 // --------------------------------------------------------------------------------
1389 // --------------------------------------------------------------------------------
1392 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCheckFormat", "");
1395 // ----- Reset the file system cache
1398 // ----- Reset the error handler
1399 $this->privErrorReset();
1401 // ----- Look if the file exits
1402 if (!is_file($this->zipname)) {
1403 // ----- Error log
1404 PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "Missing archive file '".$this->zipname."'");
1405 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, false, PclZip::errorInfo());
1409 // ----- Check that the file is readeable
1410 if (!is_readable($this->zipname)) {
1411 // ----- Error log
1412 … PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to read archive '".$this->zipname."'");
1413 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, false, PclZip::errorInfo());
1417 // ----- Check the magic code
1420 // ----- Check the central header
1423 // ----- Check each file header
1426 // ----- Return
1427 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1430 // --------------------------------------------------------------------------------
1432 // --------------------------------------------------------------------------------
1446 // --------------------------------------------------------------------------------
1449 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privParseOptions", "");
1452 // ----- Read the options
1455 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Looking for table index $i, opt…
1457 // ----- Check if the option is supported
1459 // ----- Error log
1462 // ----- Return
1463 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1467 // ----- Look for next option
1469 // ----- Look for options that request a path value
1473 // ----- Check the number of parameters
1475 // ----- Error log
1478 // ----- Return
1479 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1483 // ----- Get the value
1485 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1490 // ----- Check the number of parameters
1492 // ----- Error log
1495 // ----- Return
1496 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1500 // ----- Get the value
1504 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1508 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1512 // ----- Look for options that request an array of string for value
1514 // ----- Check the number of parameters
1516 // ----- Error log
1519 // ----- Return
1520 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1524 // ----- Get the value
1532 // ----- Error log
1535 // ----- Return
1536 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1539 …////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_opt…
1543 // ----- Look for options that request an EREG or PREG expression
1547 // ----- Check the number of parameters
1549 // ----- Error log
1552 // ----- Return
1553 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1557 // ----- Get the value
1562 // ----- Error log
1565 // ----- Return
1566 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1569 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1573 // ----- Look for options that takes a string
1577 // ----- Check the number of parameters
1579 // ----- Error log
1585 // ----- Return
1586 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1590 // ----- Get the value
1595 // ----- Error log
1601 // ----- Return
1602 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1605 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1609 // ----- Look for options that request an array of index
1611 // ----- Check the number of parameters
1613 // ----- Error log
1616 // ----- Return
1617 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1621 // ----- Get the value
1624 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is a string '".$p_o…
1626 // ----- Remove spaces
1629 // ----- Parse items
1633 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is an integer '".$p…
1634 $v_work_list[0] = $p_options_list[$i+1].'-'.$p_options_list[$i+1];
1637 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is an array");
1641 // ----- Error log
1644 // ----- Return
1645 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1649 // ----- Reduce the index list
1651 // an end value : [0,3], [5-5], [8-10], ...
1652 // ----- Check the format of each item
1656 // ----- Explode the item
1657 $v_item_list = explode("-", $v_work_list[$j]);
1660 // ----- TBC : Here we might check that each item is a
1663 // ----- Look for single value
1665 // ----- Set the option value
1670 // ----- Set the option value
1675 // ----- Error log
1678 // ----- Return
1679 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1683 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extracted index item = [".$v_re…
1685 // ----- Look for list sort
1687 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The list should be sorted ...");
1690 // ----- TBC : An automatic sort should be writen ...
1691 // ----- Error log
1694 // ----- Return
1695 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1701 // ----- Sort the items
1704 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "List sorting is not yet write .…
1707 // ----- Next option
1711 // ----- Look for options that request no value
1719 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1722 // ----- Look for options that request an octal value
1724 // ----- Check the number of parameters
1726 // ----- Error log
1729 // ----- Return
1730 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1734 // ----- Get the value
1736 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_optio…
1740 // ----- Look for options that request a call-back
1751 // ----- Check the number of parameters
1753 // ----- Error log
1756 // ----- Return
1757 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1761 // ----- Get the value
1763 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "call-back ".PclZipUtilOptionTex…
1765 // ----- Check that the value is a valid existing function
1767 // ----- Error log
1770 // ----- Return
1771 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1775 // ----- Set the attribute
1781 // ----- Error log
1786 // ----- Return
1787 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1791 // ----- Next options
1795 // ----- Look for mandatory options
1798 // ----- Look for mandatory option
1800 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Detect a mandatory option : ".P…
1801 // ----- Look if present
1803 // ----- Error log
1806 // ----- Return
1807 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1814 // ----- Return
1815 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1818 // --------------------------------------------------------------------------------
1820 // --------------------------------------------------------------------------------
1827 // --------------------------------------------------------------------------------
1830 … //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privFileDescrParseAtt", "");
1833 // ----- For each file in the list check the attributes
1836 // ----- Check if the option is supported
1838 // ----- Error log
1841 // ----- Return
1842 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1846 // ----- Look for attribute
1851 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1856 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key).…
1860 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1869 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1874 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key).…
1878 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1886 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1891 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key).…
1895 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1901 // ----- Error log
1905 // ----- Return
1906 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1910 // ----- Look for mandatory options
1913 // ----- Look for mandatory option
1915 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Detect a mandatory option : ".P…
1916 // ----- Look if present
1919 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1929 // ----- Return
1930 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
1933 // --------------------------------------------------------------------------------
1935 // --------------------------------------------------------------------------------
1942 // --------------------------------------------------------------------------------
1945 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privFileDescrExpand", "");
1948 // ----- Create a result list
1951 // ----- Look each entry
1953 // ----- Get filedescr
1956 // ----- Reduce the filename
1957 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filedescr before reduction :'".…
1960 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filedescr after reduction :'".$…
1962 // ----- Get type of descr
1964 // ----- Error log
1965 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$v_descr['filename']."'…
1968 // ----- Return
1969 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
1973 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "This is a file");
1977 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "This is a folder");
1981 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Unsupported file type : link");
1986 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Unsupported file type : unknown…
1991 // ----- Calculate the stored filename
1992 $this->privCalculateStoredFilename($v_descr, $p_options);
1994 // ----- Add the descriptor in result list
1997 // ----- Look for folder
1999 // ----- List of items in folder
2004 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Looking for '".$v_item_handler.…
2006 // ----- Skip '.' and '..'
2011 // ----- Compose the full filename
2014 // ----- Look for different stored filename
2016 // files/sub-folders also change
2025 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to open dir '".$v_descr[…
2029 // ----- Expand each element of the list
2031 // ----- Expand
2032 if (($v_result = $this->privFileDescrExpand($v_dirlist_descr, $p_options)) != 1) {
2033 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2037 // ----- Concat the resulting list
2038 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Merging result list (size '".si…
2040 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "merged result list is size '".s…
2043 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Nothing in this folder to expan…
2046 // ----- Free local array
2051 // ----- Get the result list
2054 // ----- Return
2055 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2058 // --------------------------------------------------------------------------------
2060 // --------------------------------------------------------------------------------
2065 // --------------------------------------------------------------------------------
2068 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCreate", "list");
2072 // ----- Magic quotes trick
2073 $this->privDisableMagicQuotes();
2075 // ----- Open the file in write mode
2076 if (($v_result = $this->privOpenFd('wb')) != 1)
2078 // ----- Return
2079 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2083 // ----- Add the list of files
2084 $v_result = $this->privAddList($p_filedescr_list, $p_result_list, $p_options);
2086 // ----- Close
2087 $this->privCloseFd();
2089 // ----- Magic quotes trick
2090 $this->privSwapBackMagicQuotes();
2092 // ----- Return
2093 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2096 // --------------------------------------------------------------------------------
2098 // --------------------------------------------------------------------------------
2103 // --------------------------------------------------------------------------------
2106 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAdd", "list");
2110 // ----- Look if the archive exists or is empty
2111 if ((!is_file($this->zipname)) || (filesize($this->zipname) == 0))
2113 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive does not exist, or is e…
2115 // ----- Do a create
2116 $v_result = $this->privCreate($p_filedescr_list, $p_result_list, $p_options);
2118 // ----- Return
2119 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2122 // ----- Magic quotes trick
2123 $this->privDisableMagicQuotes();
2125 // ----- Open the zip file
2126 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
2127 if (($v_result=$this->privOpenFd('rb')) != 1)
2129 // ----- Magic quotes trick
2130 $this->privSwapBackMagicQuotes();
2132 // ----- Return
2133 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2137 // ----- Read the central directory informations
2139 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
2141 $this->privCloseFd();
2142 $this->privSwapBackMagicQuotes();
2143 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2147 // ----- Go to beginning of File
2148 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($thi…
2149 @rewind($this->zip_fd);
2150 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($thi…
2152 // ----- Creates a temporay file
2153 $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp';
2155 // ----- Open the temporary file in write mode
2156 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
2159 $this->privCloseFd();
2160 $this->privSwapBackMagicQuotes();
2164 // ----- Return
2165 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2169 // ----- Copy the files from the archive to the temporary file
2175 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
2176 $v_buffer = fread($this->zip_fd, $v_read_size);
2178 $v_size -= $v_read_size;
2181 // ----- Swap the file descriptor
2184 $v_swap = $this->zip_fd;
2185 $this->zip_fd = $v_zip_temp_fd;
2188 // ----- Add the files
2190 if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1)
2193 $this->privCloseFd();
2195 $this->privSwapBackMagicQuotes();
2197 // ----- Return
2198 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2202 // ----- Store the offset of the central dir
2203 $v_offset = @ftell($this->zip_fd);
2204 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "New offset of central dir : $v_…
2206 // ----- Copy the block of file headers from the old archive
2211 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
2213 @fwrite($this->zip_fd, $v_buffer, $v_read_size);
2214 $v_size -= $v_read_size;
2217 // ----- Create the Central Dir files header
2220 // ----- Create the file header
2222 if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) {
2224 $this->privCloseFd();
2226 $this->privSwapBackMagicQuotes();
2228 // ----- Return
2229 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2235 // ----- Transform the header to a 'usable' info
2236 $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]);
2239 // ----- Zip file comment
2251 // ----- Calculate the size of the central header
2252 $v_size = @ftell($this->zip_fd)-$v_offset;
2254 // ----- Create the central dir footer
2255 …if (($v_result = $this->privWriteCentralHeader($v_count+$v_central_dir['entries'], $v_size, $v_off…
2257 // ----- Reset the file list
2259 $this->privSwapBackMagicQuotes();
2261 // ----- Return
2262 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2266 // ----- Swap back the file descriptor
2267 $v_swap = $this->zip_fd;
2268 $this->zip_fd = $v_zip_temp_fd;
2271 // ----- Close
2272 $this->privCloseFd();
2274 // ----- Close the temporary file
2277 // ----- Magic quotes trick
2278 $this->privSwapBackMagicQuotes();
2280 // ----- Delete the zip file
2282 @unlink($this->zipname);
2284 // ----- Rename the temporary file
2286 //@rename($v_zip_temp_name, $this->zipname);
2287 PclZipUtilRename($v_zip_temp_name, $this->zipname);
2289 // ----- Return
2290 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2293 // --------------------------------------------------------------------------------
2295 // --------------------------------------------------------------------------------
2299 // --------------------------------------------------------------------------------
2302 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privOpenFd", 'mode='.$p_mode…
2305 // ----- Look if already open
2306 if ($this->zip_fd != 0)
2308 // ----- Error log
2309 … PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Zip file \''.$this->zipname.'\' already open');
2311 // ----- Return
2312 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2316 // ----- Open the zip file
2317 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Open file in '.$p_mode.' mode');
2318 if (($this->zip_fd = @fopen($this->zipname, $p_mode)) == 0)
2320 // ----- Error log
2321 …PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in …
2323 // ----- Return
2324 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2328 // ----- Return
2329 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2332 // --------------------------------------------------------------------------------
2334 // --------------------------------------------------------------------------------
2338 // --------------------------------------------------------------------------------
2341 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCloseFd", "");
2344 if ($this->zip_fd != 0)
2345 @fclose($this->zip_fd);
2346 $this->zip_fd = 0;
2348 // ----- Return
2349 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2352 // --------------------------------------------------------------------------------
2354 // --------------------------------------------------------------------------------
2366 // --------------------------------------------------------------------------------
2370 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddList", "list");
2373 // ----- Add the files
2375 if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1)
2377 // ----- Return
2378 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2382 // ----- Store the offset of the central dir
2383 $v_offset = @ftell($this->zip_fd);
2385 // ----- Create the Central Dir files header
2388 // ----- Create the file header
2390 if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) {
2391 // ----- Return
2392 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2398 // ----- Transform the header to a 'usable' info
2399 $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]);
2402 // ----- Zip file comment
2408 // ----- Calculate the size of the central header
2409 $v_size = @ftell($this->zip_fd)-$v_offset;
2411 // ----- Create the central dir footer
2412 if (($v_result = $this->privWriteCentralHeader($v_count, $v_size, $v_offset, $v_comment)) != 1)
2414 // ----- Reset the file list
2417 // ----- Return
2418 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2422 // ----- Return
2423 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2426 // --------------------------------------------------------------------------------
2428 // --------------------------------------------------------------------------------
2436 // --------------------------------------------------------------------------------
2439 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddFileList", "filedescr…
2443 // ----- Recuperate the current number of elt in list
2445 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Before add, list have ".$v_nb."…
2447 // ----- Loop on the files
2449 // ----- Format the filename
2453 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Looking for file '".$p_filedesc…
2455 // ----- Skip empty file names
2458 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Skip empty filename");
2462 // ----- Check the filename
2464 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$p_filedescr_list[$j]['…
2466 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2470 // ----- Look if it is a file or a dir with no all path remove option
2476 // ----- Add the file
2477 $v_result = $this->privAddFile($p_filedescr_list[$j], $v_header,
2480 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2484 // ----- Store the file infos
2488 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "After add, list have ".$v_nb." …
2490 // ----- Return
2491 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2494 // --------------------------------------------------------------------------------
2496 // --------------------------------------------------------------------------------
2501 // --------------------------------------------------------------------------------
2504 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddFile", "filename='".$…
2507 // ----- Working variable
2512 // ----- Error log
2515 // ----- Return
2516 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2520 // ----- Look for a stored different filename
2523 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, 'Stored filename is NOT the same…
2527 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, 'Stored filename is the same');
2530 // ----- Set the file properties
2547 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Header external extension '".sp…
2554 $p_header['index'] = -1;
2556 // ----- Look for pre-add callback
2558 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PC…
2560 // ----- Generate a local information
2562 $this->privConvertHeader2FileInfo($p_header, $v_local_header);
2564 // ----- Call the callback
2569 // ----- Change the file status
2574 // ----- Update the informations
2578 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New stored filename is '".$p_he…
2582 // ----- Look for empty stored filename
2587 // ----- Check the path length
2592 // ----- Look if no error, or file not skipped
2595 // ----- Look for a file
2598 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "'".$p_filename."' is a file");
2599 // ----- Open the source file
2602 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
2607 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File will not be compressed");
2608 // ----- Read the file content
2611 // ----- Calculate the CRC
2614 // ----- Set header parameters
2619 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File will be compressed");
2620 // ----- Read the file content
2623 // ----- Calculate the CRC
2626 // ----- Compress the file
2629 // ----- Set header parameters
2634 // ----- Look for encryption
2638 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File need to be crypted ....");
2651 // ----- Add the header to the data
2653 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Size after header : ".strlen($v…
2657 // ----- Call the header generation
2658 if (($v_result = $this->privWriteFileHeader($p_header)) != 1) {
2660 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2664 // ----- Write the compressed (or not) content
2665 @fwrite($this->zip_fd,
2668 // ----- Close the file
2672 // ----- Look for a directory
2674 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "'".$p_filename."' is a folder");
2675 // ----- Look for directory last '/'
2676 if (@substr($p_header['stored_filename'], -1) != '/') {
2680 // ----- Set the file properties
2685 // ----- Call the header generation
2686 if (($v_result = $this->privWriteFileHeader($p_header)) != 1)
2688 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2694 // ----- Look for post-add callback
2696 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[P…
2698 // ----- Generate a local information
2700 $this->privConvertHeader2FileInfo($p_header, $v_local_header);
2702 // ----- Call the callback
2707 // ----- Ignored
2711 // ----- Update the informations
2715 // ----- Return
2716 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2719 // --------------------------------------------------------------------------------
2721 // --------------------------------------------------------------------------------
2728 // --------------------------------------------------------------------------------
2731 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCalculateStoredFilename"…
2734 // ----- Working variables
2755 // ----- Look for full name change
2758 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Changing full name of '".$p_fil…
2761 // ----- Look for path and/or short name change
2764 // ----- Look for short name change
2772 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Changing short name of '".$p_fi…
2775 // ----- Calculate the stored filename
2779 // ----- Look for all path to remove
2782 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Remove all path selected change…
2784 // ----- Look for partial path remove
2786 if (substr($p_remove_dir, -1) != '/')
2807 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Path to remove is the current f…
2810 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Remove path '$p_remove_dir' in …
2813 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Result is '$v_stored_filename'"…
2817 // ----- Look for path to add
2819 if (substr($p_add_dir, -1) == "/")
2823 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Add path '$p_add_dir' in file '…
2827 // ----- Filename (reduce the path of stored name)
2830 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Stored filename will be '".$p_f…
2832 // ----- Return
2833 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2836 // --------------------------------------------------------------------------------
2838 // --------------------------------------------------------------------------------
2843 // --------------------------------------------------------------------------------
2846 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteFileHeader", 'file=…
2849 // ----- Store the offset position of the file
2850 $p_header['offset'] = ftell($this->zip_fd);
2851 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, 'File offset of the header :'.$p…
2853 // ----- Transform UNIX mtime to DOS format mdate/mtime
2854 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", …
2857 $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday'];
2859 // ----- Packed data
2868 // ----- Write the first 148 bytes of the header in the archive
2869 fputs($this->zip_fd, $v_binary_data, 30);
2871 // ----- Write the variable fields
2874 fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename']));
2878 fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']);
2881 // ----- Return
2882 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2885 // --------------------------------------------------------------------------------
2887 // --------------------------------------------------------------------------------
2892 // --------------------------------------------------------------------------------
2895 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteCentralFileHeader",…
2900 …// //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "header[$key] = ".$p_header[…
2903 // ----- Transform UNIX mtime to DOS format mdate/mtime
2904 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", …
2907 $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday'];
2909 // ----- Packed data
2920 // ----- Write the 42 bytes of the header in the zip file
2921 fputs($this->zip_fd, $v_binary_data, 46);
2923 // ----- Write the variable fields
2926 fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename']));
2930 fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']);
2934 fputs($this->zip_fd, $p_header['comment'], $p_header['comment_len']);
2937 // ----- Return
2938 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2941 // --------------------------------------------------------------------------------
2943 // --------------------------------------------------------------------------------
2948 // --------------------------------------------------------------------------------
2951 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteCentralHeader", 'nb…
2954 // ----- Packed data
2959 // ----- Write the 22 bytes of the header in the zip file
2960 fputs($this->zip_fd, $v_binary_data, 22);
2962 // ----- Write the variable fields
2965 fputs($this->zip_fd, $p_comment, strlen($p_comment));
2968 // ----- Return
2969 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
2972 // --------------------------------------------------------------------------------
2974 // --------------------------------------------------------------------------------
2979 // --------------------------------------------------------------------------------
2982 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privList", "list");
2985 // ----- Magic quotes trick
2986 $this->privDisableMagicQuotes();
2988 // ----- Open the zip file
2989 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
2990 if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0)
2992 // ----- Magic quotes trick
2993 $this->privSwapBackMagicQuotes();
2995 // ----- Error log
2996 …PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in …
2998 // ----- Return
2999 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3003 // ----- Read the central directory informations
3005 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
3007 $this->privSwapBackMagicQuotes();
3008 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3012 // ----- Go to beginning of Central Dir
3013 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Offset : ".$v_central_dir['offs…
3014 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($thi…
3015 @rewind($this->zip_fd);
3016 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($thi…
3017 if (@fseek($this->zip_fd, $v_central_dir['offset']))
3019 $this->privSwapBackMagicQuotes();
3021 // ----- Error log
3024 // ----- Return
3025 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3028 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($thi…
3030 // ----- Read each entry
3033 // ----- Read the file header
3034 if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1)
3036 $this->privSwapBackMagicQuotes();
3037 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3042 // ----- Get the only interesting attributes
3043 $this->privConvertHeader2FileInfo($v_header, $p_list[$i]);
3047 // ----- Close the zip file
3048 $this->privCloseFd();
3050 // ----- Magic quotes trick
3051 $this->privSwapBackMagicQuotes();
3053 // ----- Return
3054 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3057 // --------------------------------------------------------------------------------
3059 // --------------------------------------------------------------------------------
3076 // --------------------------------------------------------------------------------
3079 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privConvertHeader2FileInfo",…
3082 // ----- Get the interesting attributes
3093 // ----- Return
3094 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3097 // --------------------------------------------------------------------------------
3099 // --------------------------------------------------------------------------------
3114 // --------------------------------------------------------------------------------
3117 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privExtractByRule", "path='$…
3120 // ----- Magic quotes trick
3121 $this->privDisableMagicQuotes();
3123 // ----- Check the path
3130 // ----- Reduce the path last (and duplicated) '/'
3133 // ----- Look for the path end '/'
3134 while (substr($p_path, -1) == "/")
3136 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Destination path [$p_path] ends…
3137 $p_path = substr($p_path, 0, strlen($p_path)-1);
3138 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Modified to [$p_path]");
3142 // ----- Look for path to remove format (should end by /)
3143 if (($p_remove_path != "") && (substr($p_remove_path, -1) != '/'))
3149 // ----- Open the zip file
3150 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
3151 if (($v_result = $this->privOpenFd('rb')) != 1)
3153 $this->privSwapBackMagicQuotes();
3154 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3158 // ----- Read the central directory informations
3160 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
3162 // ----- Close the zip file
3163 $this->privCloseFd();
3164 $this->privSwapBackMagicQuotes();
3166 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3170 // ----- Start at beginning of Central Dir
3173 // ----- Read each entry
3177 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Read next file header entry : '…
3179 // ----- Read next Central dir entry
3180 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Position before rewind : ".ftel…
3181 @rewind($this->zip_fd);
3182 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Position after rewind : ".ftell…
3183 if (@fseek($this->zip_fd, $v_pos_entry))
3185 // ----- Close the zip file
3186 $this->privCloseFd();
3187 $this->privSwapBackMagicQuotes();
3189 // ----- Error log
3192 // ----- Return
3193 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3196 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position after fseek : ".ftell(…
3198 // ----- Read the file header
3200 if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1)
3202 // ----- Close the zip file
3203 $this->privCloseFd();
3204 $this->privSwapBackMagicQuotes();
3206 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3210 // ----- Store the index
3213 // ----- Store the file position
3214 $v_pos_entry = ftell($this->zip_fd);
3216 // ----- Look for the specific extract rules
3219 // ----- Look for extract by name rule
3222 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByName'");
3224 // ----- Look if the filename is in the list
3226 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Compare with file '".$p_options…
3228 // ----- Look for a directory
3229 if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") {
3230 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The searched item is a director…
3232 // ----- Look if the directory is in the filename path
3235 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The directory is in the file pa…
3239 // ----- Look for a filename
3241 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The file is the right one.");
3247 // ----- Look for extract by ereg rule
3250 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[P…
3253 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expr…
3258 // ----- Look for extract by preg rule
3261 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByEreg'");
3264 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expr…
3269 // ----- Look for extract by index rule
3272 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByIndex'");
3274 // ----- Look if the index is in the list
3276 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Look if index '$i' is in [".$p_…
3279 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found as part of an index range…
3283 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Do not look this index range fo…
3288 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Index range is greater than ind…
3294 // ----- Look for no rule, which means extract all the archive
3296 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with no rule (extract a…
3300 // ----- Check compression method
3304 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unsupported compression method …
3307 // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
3310 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is sel…
3312 $this->privSwapBackMagicQuotes();
3319 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3324 // ----- Check encrypted files
3326 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unsupported file encryption");
3329 // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
3332 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is sel…
3334 $this->privSwapBackMagicQuotes();
3341 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3346 // ----- Look for real extraction
3348 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "No need for extract");
3349 $v_result = $this->privConvertHeader2FileInfo($v_header,
3352 $this->privCloseFd();
3353 $this->privSwapBackMagicQuotes();
3354 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3361 // ----- Look for real extraction
3364 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file '".$v_header['f…
3366 // ----- Go to the file position
3367 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position before rewind : ".ftel…
3368 @rewind($this->zip_fd);
3369 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell…
3370 if (@fseek($this->zip_fd, $v_header['offset']))
3372 // ----- Close the zip file
3373 $this->privCloseFd();
3375 $this->privSwapBackMagicQuotes();
3377 // ----- Error log
3380 // ----- Return
3381 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3384 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell(…
3386 // ----- Look for extraction as string
3389 // ----- Extracting the file
3390 $v_result1 = $this->privExtractFileAsString($v_header, $v_string);
3392 $this->privCloseFd();
3393 $this->privSwapBackMagicQuotes();
3394 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1);
3398 // ----- Get the only interesting attributes
3399 …if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted])) != 1)
3401 // ----- Close the zip file
3402 $this->privCloseFd();
3403 $this->privSwapBackMagicQuotes();
3405 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3409 // ----- Set the file content
3412 // ----- Next extracted file
3415 // ----- Look for user callback abort
3420 // ----- Look for extraction in standard output
3423 // ----- Extracting the file in standard output
3424 $v_result1 = $this->privExtractFileInOutput($v_header, $p_options);
3426 $this->privCloseFd();
3427 $this->privSwapBackMagicQuotes();
3428 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1);
3432 // ----- Get the only interesting attributes
3433 …if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) !=…
3434 $this->privCloseFd();
3435 $this->privSwapBackMagicQuotes();
3436 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3440 // ----- Look for user callback abort
3445 // ----- Look for normal extraction
3447 // ----- Extracting the file
3448 $v_result1 = $this->privExtractFile($v_header,
3453 $this->privCloseFd();
3454 $this->privSwapBackMagicQuotes();
3455 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1);
3459 // ----- Get the only interesting attributes
3460 …if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) !=…
3462 // ----- Close the zip file
3463 $this->privCloseFd();
3464 $this->privSwapBackMagicQuotes();
3466 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3470 // ----- Look for user callback abort
3478 // ----- Close the zip file
3479 $this->privCloseFd();
3480 $this->privSwapBackMagicQuotes();
3482 // ----- Return
3483 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3486 // --------------------------------------------------------------------------------
3488 // --------------------------------------------------------------------------------
3496 // --------------------------------------------------------------------------------
3499 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFile', "path='$p_…
3502 // ----- Read the file header
3503 if (($v_result = $this->privReadFileHeader($v_header)) != 1)
3505 // ----- Return
3506 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3510 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filena…
3512 // ----- Check that the file header is coherent with $p_entry info
3513 if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) {
3517 // ----- Look for all path to remove
3519 // ----- Look for folder entry that not need to be extracted
3521 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The entry is a folder : need to…
3525 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3529 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "All path is removed");
3530 // ----- Get the basename of the path
3534 // ----- Look for path to remove
3537 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Look for some path to remove");
3540 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The folder is the same as the r…
3542 // ----- Change the file status
3545 // ----- Return
3546 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3553 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found path '$p_remove_path' to …
3555 // ----- Remove the path
3558 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Resulting file is '".$p_entry['…
3562 // ----- Add the path
3567 // ----- Check a base_dir_restriction
3569 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Check the extract directory res…
3574 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_EXTRACT_DIR_RESTRICT…
3580 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3585 // ----- Look for pre-extract callback
3587 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PC…
3589 // ----- Generate a local information
3591 $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
3593 // ----- Call the callback
3598 // ----- Change the file status
3603 // ----- Look for abort result
3605 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extract…
3606 // ----- This status is internal and will be changed in 'skipped'
3611 // ----- Update the informations
3614 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New filename is '".$p_entry['fi…
3617 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file (with path) '".…
3619 // ----- Look if extraction should be done
3622 // ----- Look for specific actions while the file exist
3625 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$p_entry['filename']."'…
3627 // ----- Look if file is a directory
3630 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['file…
3632 // ----- Change the file status
3635 // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
3640 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is sel…
3646 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3650 // ----- Look if file is write protected
3653 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['file…
3655 // ----- Change the file status
3658 // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
3663 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is sel…
3669 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3674 // ----- Look if the extracted file is older
3677 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['file…
3678 // ----- Change the file status
3681 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_REPLACE_NEWER is sel…
3684 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File will not be replaced");
3687 // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
3692 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is sel…
3698 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
3704 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['file…
3708 // ----- Check the directory availability and create it if necessary
3710 … if ((($p_entry['external']&0x00000010)==0x00000010) || (substr($p_entry['filename'], -1) == '/'))
3717 …if (($v_result = $this->privDirCheck($v_dir_to_check, (($p_entry['external']&0x00000010)==0x000000…
3718 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to create path for '".$p…
3720 // ----- Change the file status
3723 // ----- Return
3724 ////--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3731 // ----- Look if extraction should be done
3734 // ----- Do the extraction (if not a folder)
3737 // ----- Look for not compressed file
3739 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed fil…
3741 // ----- Opening destination file
3744 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Error while opening '".$p_entry…
3746 // ----- Change the file status
3749 // ----- Return
3750 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3754 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Read '".$p_entry['size']."' byt…
3756 // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks
3761 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Read $v_read_size bytes");
3762 $v_buffer = @fread($this->zip_fd, $v_read_size);
3768 $v_size -= $v_read_size;
3771 // ----- Closing the destination file
3774 // ----- Change the file mtime
3780 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file (C…
3781 // ----- TBC
3784 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File is encrypted");
3786 // ----- Read the encryption header
3787 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read 12 encryption header bytes…
3788 $v_encryption_header = @fread($this->zip_fd, 12);
3790 // ----- Read the encrypted & compressed file in a buffer
3791 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read '".($p_entry['compressed_s…
3792 $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']-12);
3794 // ----- Decrypt the buffer
3795 $this->privDecrypt($v_encryption_header, $v_buffer,
3796 $p_entry['compressed_size']-12, $p_entry['crc']);
3797 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Buffer is '".$v_buffer."'");
3801 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read '".$p_entry['compressed_si…
3802 // ----- Read the compressed file in a buffer (one shot)
3803 $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']);
3806 // ----- Decompress the file
3810 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to inflate compressed fi…
3812 // ----- Change the file status
3816 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3820 // ----- Opening destination file
3822 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Error while opening '".$p_entry…
3824 // ----- Change the file status
3827 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3831 // ----- Write the uncompressed data
3835 // ----- Closing the destination file
3838 // ----- Change the file mtime
3842 // ----- Look for chmod option
3844 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "chmod option activated '".$p_op…
3846 // ----- Change the mode of the file
3850 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done");
3854 // ----- Change abort status
3859 // ----- Look for post-extract callback
3861 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[P…
3863 // ----- Generate a local information
3865 $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
3867 // ----- Call the callback
3872 // ----- Look for abort result
3874 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extract…
3879 // ----- Return
3880 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3883 // --------------------------------------------------------------------------------
3885 // --------------------------------------------------------------------------------
3890 // --------------------------------------------------------------------------------
3893 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFileInOutput', ""…
3896 // ----- Read the file header
3897 if (($v_result = $this->privReadFileHeader($v_header)) != 1) {
3898 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
3902 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filena…
3904 // ----- Check that the file header is coherent with $p_entry info
3905 if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) {
3909 // ----- Look for pre-extract callback
3911 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PC…
3913 // ----- Generate a local information
3915 $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
3917 // ----- Call the callback
3922 // ----- Change the file status
3927 // ----- Look for abort result
3929 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extract…
3930 // ----- This status is internal and will be changed in 'skipped'
3935 // ----- Update the informations
3938 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New filename is '".$p_entry['fi…
3941 // ----- Trace
3942 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file (with path) '".…
3944 // ----- Look if extraction should be done
3947 // ----- Do the extraction (if not a folder)
3949 // ----- Look for not compressed file
3951 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed fil…
3952 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Reading '".$p_entry['size']."' …
3954 // ----- Read the file in a buffer (one shot)
3955 $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']);
3957 // ----- Send the file to the output
3962 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file");
3963 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Reading '".$p_entry['size']."' …
3965 // ----- Read the compressed file in a buffer (one shot)
3966 $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']);
3968 // ----- Decompress the file
3972 // ----- Send the file to the output
3976 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done");
3980 // ----- Change abort status
3985 // ----- Look for post-extract callback
3987 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[P…
3989 // ----- Generate a local information
3991 $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
3993 // ----- Call the callback
3998 // ----- Look for abort result
4000 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extract…
4005 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4008 // --------------------------------------------------------------------------------
4010 // --------------------------------------------------------------------------------
4015 // --------------------------------------------------------------------------------
4018 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFileAsString', "p…
4021 // ----- Read the file header
4023 if (($v_result = $this->privReadFileHeader($v_header)) != 1)
4025 // ----- Return
4026 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4030 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filena…
4032 // ----- Check that the file header is coherent with $p_entry info
4033 if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) {
4037 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file in string (with…
4039 // ----- Do the extraction (if not a folder)
4042 // ----- Look for not compressed file
4045 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed fil…
4046 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Reading '".$p_entry['size']."' …
4048 // ----- Reading the file
4049 $p_string = @fread($this->zip_fd, $p_entry['compressed_size']);
4052 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file (c…
4054 // ----- Reading the file
4055 $v_data = @fread($this->zip_fd, $p_entry['compressed_size']);
4057 // ----- Decompress the file
4063 // ----- Trace
4064 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done");
4070 // ----- Return
4071 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4074 // --------------------------------------------------------------------------------
4076 // --------------------------------------------------------------------------------
4081 // --------------------------------------------------------------------------------
4084 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadFileHeader", "");
4087 // ----- Read the 4 bytes signature
4088 $v_binary_data = @fread($this->zip_fd, 4);
4089 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary data is : '".sprintf("%0…
4091 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprint…
4093 // ----- Check signature
4096 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Invalid File header");
4098 // ----- Error log
4101 // ----- Return
4102 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4106 // ----- Read the first 42 bytes of the header
4107 $v_binary_data = fread($this->zip_fd, 26);
4109 // ----- Look for invalid block size
4114 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid block size : ".strlen($…
4116 // ----- Error log
4119 // ----- Return
4120 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4124 // ----- Extract the values
4125 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Header : '".$v_binary_data."'");
4126 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Header (Hex) : '".bin2hex($v_bi…
4129 // ----- Get filename
4130 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "File name length : ".$v_data['f…
4131 $p_header['filename'] = fread($this->zip_fd, $v_data['filename_len']);
4132 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Filename : \''.$p_header['filen…
4134 // ----- Get extra_fields
4135 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extra field length : ".$v_data[…
4137 $p_header['extra'] = fread($this->zip_fd, $v_data['extra_len']);
4142 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Extra field : \''.bin2hex($p_he…
4144 // ----- Extract properties
4146 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Version need to extract : ('.$p…
4148 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Compression method : \''.$p_hea…
4150 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Size : \''.$p_header['size'].'\…
4152 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Compressed Size : \''.$p_header…
4154 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'CRC : \''.sprintf("0x%X", $p_he…
4156 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Flag : \''.$p_header['flag'].'\…
4158 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Filename_len : \''.$p_header['f…
4160 // ----- Recuperate date in UNIX format
4165 // ----- Extract time
4170 // ----- Extract date
4175 // ----- Get UNIX date format
4178 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", …
4183 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date is actual : \''.date("d/m/…
4188 …// //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Attribut[$key] = ".$v_data[…
4191 // ----- Set the stored filename
4194 // ----- Set the status field
4197 // ----- Return
4198 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4201 // --------------------------------------------------------------------------------
4203 // --------------------------------------------------------------------------------
4208 // --------------------------------------------------------------------------------
4211 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadCentralFileHeader", …
4214 // ----- Read the 4 bytes signature
4215 $v_binary_data = @fread($this->zip_fd, 4);
4216 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary data is : '".sprintf("%0…
4218 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprint…
4220 // ----- Check signature
4223 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Invalid Central Dir File signat…
4225 // ----- Error log
4228 // ----- Return
4229 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4233 // ----- Read the first 42 bytes of the header
4234 $v_binary_data = fread($this->zip_fd, 42);
4236 // ----- Look for invalid block size
4241 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid block size : ".strlen($…
4243 // ----- Error log
4246 // ----- Return
4247 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4251 // ----- Extract the values
4252 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Header : '".$v_binary_data."'");
4253 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Header (Hex) : '".bin2hex($v_bi…
4256 // ----- Get filename
4257 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "File name length : ".$p_header[…
4259 $p_header['filename'] = fread($this->zip_fd, $p_header['filename_len']);
4262 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Filename : \''.$p_header['filen…
4264 // ----- Get extra
4265 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Extra length : ".$p_header['ext…
4267 $p_header['extra'] = fread($this->zip_fd, $p_header['extra_len']);
4270 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Extra : \''.$p_header['extra'].…
4272 // ----- Get comment
4273 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Comment length : ".$p_header['c…
4275 $p_header['comment'] = fread($this->zip_fd, $p_header['comment_len']);
4278 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Comment : \''.$p_header['commen…
4280 // ----- Extract properties
4281 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Version : \''.($p_header['versi…
4282 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Version need to extract : \''.(…
4283 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Size : \''.$p_header['size'].'\…
4284 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Compressed Size : \''.$p_header…
4285 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'CRC : \''.sprintf("0x%X", $p_he…
4286 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Flag : \''.$p_header['flag'].'\…
4287 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Offset : \''.$p_header['offset'…
4289 // ----- Recuperate date in UNIX format
4292 // ----- Extract time
4297 // ----- Extract date
4302 // ----- Get UNIX date format
4305 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Date : \''.date("d/m/y H:i:s", …
4310 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Date is actual : \''.date("d/m/…
4313 // ----- Set the stored filename
4316 // ----- Set default status to ok
4319 // ----- Look if it is a directory
4320 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Internal (Hex) : '".sprintf("Ox…
4321 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "External (Hex) : '".sprintf("Ox…
4322 if (substr($p_header['filename'], -1) == '/') {
4325 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Force folder external : \''.spr…
4328 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Header of filename : \''.$p_hea…
4330 // ----- Return
4331 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4334 // --------------------------------------------------------------------------------
4336 // --------------------------------------------------------------------------------
4343 // --------------------------------------------------------------------------------
4346 … //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCheckFileHeaders", "");
4349 // ----- Check the static values
4352 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "filename" : TBC To B…
4355 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "version_extracted" :…
4358 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "flag" : TBC To Be Co…
4361 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "compression" : TBC T…
4364 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "mtime" : TBC To Be C…
4367 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "filename_len" : TBC …
4370 // ----- Look for flag bit 3
4372 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Purpose bit flag bit 3 set !');
4373 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'File size, compression size and…
4375 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Size : \''.$p_local_header['siz…
4377 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Compressed Size : \''.$p_local_…
4379 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'CRC : \''.sprintf("0x%X", $p_lo…
4382 // ----- Return
4383 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4386 // --------------------------------------------------------------------------------
4388 // --------------------------------------------------------------------------------
4393 // --------------------------------------------------------------------------------
4396 … //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadEndCentralDir", "");
4399 // ----- Go to the end of the zip file
4400 $v_size = filesize($this->zipname);
4401 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Size of the file :$v_size");
4402 @fseek($this->zip_fd, $v_size);
4403 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position at end of zip file : \…
4404 if (@ftell($this->zip_fd) != $v_size)
4406 // ----- Error log
4407 …ivErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to go to the end of the archive \''.$this->zipname.'\'');
4409 // ----- Return
4410 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4414 // ----- First try : look if this is an archive with no commentaries (most of the time)
4418 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Look for central dir with no co…
4419 @fseek($this->zip_fd, $v_size-22);
4420 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position after min central posi…
4421 if (($v_pos = @ftell($this->zip_fd)) != ($v_size-22))
4423 // ----- Error log
4424 …(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\'');
4426 // ----- Return
4427 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4431 // ----- Read for bytes
4432 $v_binary_data = @fread($this->zip_fd, 4);
4433 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Binary data is : '".sprintf("%0…
4435 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprint…
4437 // ----- Check signature
4439 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found central dir at the defaul…
4443 $v_pos = ftell($this->zip_fd);
4446 // ----- Go back to the maximum possible size of the Central Dir End Record
4448 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Start extended search of end ce…
4452 @fseek($this->zip_fd, $v_size-$v_maximum_size);
4453 if (@ftell($this->zip_fd) != ($v_size-$v_maximum_size))
4455 // ----- Error log
4456 …(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\'');
4458 // ----- Return
4459 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4462 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position after max central posi…
4464 // ----- Read byte per byte in order to find the signature
4465 $v_pos = ftell($this->zip_fd);
4469 // ----- Read a byte
4470 $v_byte = @fread($this->zip_fd, 1);
4472 // ----- Add the byte
4475 // ----- Compare the bytes
4478 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Found End Central Dir signature…
4486 // ----- Look if not found end of central dir
4489 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to find End of Central D…
4491 // ----- Error log
4494 // ----- Return
4495 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4500 // ----- Read the first 18 bytes of the header
4501 $v_binary_data = fread($this->zip_fd, 18);
4503 // ----- Look for invalid block size
4506 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid End of Central Dir Reco…
4508 // ----- Error log
4511 // ----- Return
4512 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4516 // ----- Extract the values
4517 …////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Central Dir Record : '".$v_bi…
4518 …////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Central Dir Record (Hex) : '"…
4521 // ----- Check the global size
4522 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Comment length : ".$v_data['com…
4524 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The central dir is not at the e…
4526 // ----- Removed in release 2.2 see readme file
4531 // ----- Error log
4536 // ----- Return
4537 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4542 // ----- Get comment
4544 $p_central_dir['comment'] = fread($this->zip_fd, $v_data['comment_size']);
4547 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Comment : \''.$p_central_dir['c…
4550 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Nb of entries : \''.$p_central_…
4552 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Nb of entries for this disk : \…
4554 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Offset of Central Dir : \''.$p_…
4556 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Size of Central Dir : \''.$p_ce…
4558 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Disk number : \''.$p_central_di…
4560 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Start disk number : \''.$p_cent…
4564 …// //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "central_dir[$key] = ".$p_ce…
4567 // ----- Return
4568 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4571 // --------------------------------------------------------------------------------
4573 // --------------------------------------------------------------------------------
4578 // --------------------------------------------------------------------------------
4581 //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDeleteByRule", "");
4585 // ----- Open the zip file
4586 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
4587 if (($v_result=$this->privOpenFd('rb')) != 1)
4589 // ----- Return
4590 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4594 // ----- Read the central directory informations
4596 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
4598 $this->privCloseFd();
4599 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4603 // ----- Go to beginning of File
4604 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($thi…
4605 @rewind($this->zip_fd);
4606 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($thi…
4608 // ----- Scan all the files
4609 // ----- Start at beginning of Central Dir
4611 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position before rewind : ".ftel…
4612 @rewind($this->zip_fd);
4613 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell…
4614 if (@fseek($this->zip_fd, $v_pos_entry))
4616 // ----- Close the zip file
4617 $this->privCloseFd();
4619 // ----- Error log
4622 // ----- Return
4623 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4626 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell(…
4628 // ----- Read each entry
4633 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Read next file header entry (in…
4635 // ----- Read the file header
4637 if (($v_result = $this->privReadCentralFileHeader($v_header_list[$v_nb_extracted])) != 1)
4639 // ----- Close the zip file
4640 $this->privCloseFd();
4642 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4646 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename (index '$i') : '".$v_h…
4648 // ----- Store the index
4651 // ----- Look for the specific extract rules
4654 // ----- Look for extract by name rule
4657 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByName'");
4659 // ----- Look if the filename is in the list
4661 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Compare with file '".$p_options…
4663 // ----- Look for a directory
4664 if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") {
4665 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The searched item is a director…
4667 // ----- Look if the directory is in the filename path
4670 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The directory is in the file pa…
4675 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The entry is the searched direc…
4679 // ----- Look for a filename
4681 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The file is the right one.");
4687 // ----- Look for extract by ereg rule
4690 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[P…
4693 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expr…
4698 // ----- Look for extract by preg rule
4701 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByEreg'");
4704 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expr…
4709 // ----- Look for extract by index rule
4712 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByIndex'");
4714 // ----- Look if the index is in the list
4716 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Look if index '$i' is in [".$p_…
4719 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found as part of an index range…
4723 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Do not look this index range fo…
4728 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Index range is greater than ind…
4734 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "No argument mean remove all fil…
4738 // ----- Look for deletion
4741 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$v_header_list[$v_nb_ex…
4746 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$v_header_list[$v_nb_ex…
4751 // ----- Look if something need to be deleted
4754 // ----- Creates a temporay file
4755 $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp';
4757 // ----- Creates a temporary zip archive
4760 // ----- Open the temporary zip file in write mode
4761 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary write mode"…
4762 if (($v_result = $v_temp_zip->privOpenFd('wb')) != 1) {
4763 $this->privCloseFd();
4765 // ----- Return
4766 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4770 // ----- Look which file need to be kept
4772 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Keep entry index '$i' : '".$v_h…
4774 // ----- Calculate the position of the header
4775 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Offset='". $v_header_list[$i]['…
4776 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position before rewind : ".ftel…
4777 @rewind($this->zip_fd);
4778 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell…
4779 if (@fseek($this->zip_fd, $v_header_list[$i]['offset'])) {
4780 // ----- Close the zip file
4781 $this->privCloseFd();
4782 $v_temp_zip->privCloseFd();
4785 // ----- Error log
4788 // ----- Return
4789 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4792 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell(…
4794 // ----- Read the file header
4796 if (($v_result = $this->privReadFileHeader($v_local_header)) != 1) {
4797 // ----- Close the zip file
4798 $this->privCloseFd();
4799 $v_temp_zip->privCloseFd();
4802 // ----- Return
4803 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4807 // ----- Check that local file header is same as central file header
4808 if ($this->privCheckFileHeaders($v_local_header,
4814 // ----- Write the file header
4815 if (($v_result = $v_temp_zip->privWriteFileHeader($v_header_list[$i])) != 1) {
4816 // ----- Close the zip file
4817 $this->privCloseFd();
4818 $v_temp_zip->privCloseFd();
4821 // ----- Return
4822 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4825 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Offset for this file is '".$v_h…
4827 // ----- Read/write the data block
4828 …if (($v_result = PclZipUtilCopyBlock($this->zip_fd, $v_temp_zip->zip_fd, $v_header_list[$i]['compr…
4829 // ----- Close the zip file
4830 $this->privCloseFd();
4831 $v_temp_zip->privCloseFd();
4834 // ----- Return
4835 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4840 // ----- Store the offset of the central dir
4841 $v_offset = @ftell($v_temp_zip->zip_fd);
4842 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "New offset of central dir : $v_…
4844 // ----- Re-Create the Central Dir files header
4845 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Creates the new central directo…
4847 // ----- Create the file header
4848 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Offset of file : ".$v_header_li…
4849 if (($v_result = $v_temp_zip->privWriteCentralFileHeader($v_header_list[$i])) != 1) {
4850 $v_temp_zip->privCloseFd();
4851 $this->privCloseFd();
4854 // ----- Return
4855 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4859 // ----- Transform the header to a 'usable' info
4860 $v_temp_zip->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]);
4863 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Creates the central directory f…
4865 // ----- Zip file comment
4871 // ----- Calculate the size of the central header
4872 $v_size = @ftell($v_temp_zip->zip_fd)-$v_offset;
4874 // ----- Create the central dir footer
4875 …if (($v_result = $v_temp_zip->privWriteCentralHeader(sizeof($v_header_list), $v_size, $v_offset, $…
4876 // ----- Reset the file list
4878 $v_temp_zip->privCloseFd();
4879 $this->privCloseFd();
4882 // ----- Return
4883 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4887 // ----- Close
4888 $v_temp_zip->privCloseFd();
4889 $this->privCloseFd();
4891 // ----- Delete the zip file
4893 @unlink($this->zipname);
4895 // ----- Rename the temporary file
4897 //@rename($v_zip_temp_name, $this->zipname);
4898 PclZipUtilRename($v_zip_temp_name, $this->zipname);
4900 // ----- Destroy the temporary archive
4904 // ----- Remove every files : reset the file
4906 $this->privCloseFd();
4908 if (($v_result = $this->privOpenFd('wb')) != 1) {
4909 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4913 if (($v_result = $this->privWriteCentralHeader(0, 0, 0, '')) != 1) {
4914 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4918 $this->privCloseFd();
4921 // ----- Return
4922 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4925 // --------------------------------------------------------------------------------
4927 // --------------------------------------------------------------------------------
4936 // -1 : Unable to create directory
4937 // --------------------------------------------------------------------------------
4942 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDirCheck", "entry='$p_di…
4944 // ----- Remove the final '/'
4945 if (($p_is_dir) && (substr($p_dir, -1)=='/'))
4947 $p_dir = substr($p_dir, 0, strlen($p_dir)-1);
4949 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Looking for entry '$p_dir'");
4951 // ----- Check the directory availability
4954 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, "'$p_dir' is a directory");
4958 // ----- Extract parent directory
4960 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Parent directory is '$p_parent_…
4962 // ----- Just a check
4965 // ----- Look for parent directory
4968 if (($v_result = $this->privDirCheck($p_parent_dir)) != 1)
4970 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
4976 // ----- Create the directory
4977 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Create directory '$p_dir'");
4980 // ----- Error log
4983 // ----- Return
4984 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
4988 // ----- Return
4989 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result, "Directory '$p_dir' created"…
4992 // --------------------------------------------------------------------------------
4994 // --------------------------------------------------------------------------------
5000 // --------------------------------------------------------------------------------
5003 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privMerge", "archive='".$p_a…
5006 // ----- Look if the archive_to_add exists
5007 if (!is_file($p_archive_to_add->zipname))
5009 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive to add does not exist. …
5011 // ----- Nothing to merge, so merge is a success
5014 // ----- Return
5015 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5019 // ----- Look if the archive exists
5020 if (!is_file($this->zipname))
5022 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive does not exist, duplica…
5024 // ----- Do a duplicate
5025 $v_result = $this->privDuplicate($p_archive_to_add->zipname);
5027 // ----- Return
5028 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5032 // ----- Open the zip file
5033 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
5034 if (($v_result=$this->privOpenFd('rb')) != 1)
5036 // ----- Return
5037 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5041 // ----- Read the central directory informations
5043 if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
5045 $this->privCloseFd();
5046 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5050 // ----- Go to beginning of File
5051 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in zip : ".ftell($this
5052 @rewind($this->zip_fd);
5053 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in zip : ".ftell($this
5055 // ----- Open the archive_to_add file
5056 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open archive_to_add in binary r…
5057 if (($v_result=$p_archive_to_add->privOpenFd('rb')) != 1)
5059 $this->privCloseFd();
5061 // ----- Return
5062 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5066 // ----- Read the central directory informations
5068 if (($v_result = $p_archive_to_add->privReadEndCentralDir($v_central_dir_to_add)) != 1)
5070 $this->privCloseFd();
5071 $p_archive_to_add->privCloseFd();
5073 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5077 // ----- Go to beginning of File
5078 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in archive_to_add : ".…
5079 @rewind($p_archive_to_add->zip_fd);
5080 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in archive_to_add : ".…
5082 // ----- Creates a temporay file
5083 $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp';
5085 // ----- Open the temporary file in write mode
5086 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
5089 $this->privCloseFd();
5090 $p_archive_to_add->privCloseFd();
5094 // ----- Return
5095 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
5099 // ----- Copy the files from the archive to the temporary file
5105 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5106 $v_buffer = fread($this->zip_fd, $v_read_size);
5108 $v_size -= $v_read_size;
5111 // ----- Copy the files from the archive_to_add into the temporary file
5116 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5117 $v_buffer = fread($p_archive_to_add->zip_fd, $v_read_size);
5119 $v_size -= $v_read_size;
5122 // ----- Store the offset of the central dir
5124 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "New offset of central dir : $v_…
5126 // ----- Copy the block of file headers from the old archive
5131 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5132 $v_buffer = @fread($this->zip_fd, $v_read_size);
5134 $v_size -= $v_read_size;
5137 // ----- Copy the block of file headers from the archive_to_add
5142 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5143 $v_buffer = @fread($p_archive_to_add->zip_fd, $v_read_size);
5145 $v_size -= $v_read_size;
5148 // ----- Merge the file comments
5151 // ----- Calculate the size of the (new) central header
5152 $v_size = @ftell($v_zip_temp_fd)-$v_offset;
5154 // ----- Swap the file descriptor
5157 $v_swap = $this->zip_fd;
5158 $this->zip_fd = $v_zip_temp_fd;
5161 // ----- Create the central dir footer
5162 …if (($v_result = $this->privWriteCentralHeader($v_central_dir['entries']+$v_central_dir_to_add['en…
5164 $this->privCloseFd();
5165 $p_archive_to_add->privCloseFd();
5167 $this->zip_fd = null;
5169 // ----- Reset the file list
5172 // ----- Return
5173 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5177 // ----- Swap back the file descriptor
5178 $v_swap = $this->zip_fd;
5179 $this->zip_fd = $v_zip_temp_fd;
5182 // ----- Close
5183 $this->privCloseFd();
5184 $p_archive_to_add->privCloseFd();
5186 // ----- Close the temporary file
5189 // ----- Delete the zip file
5191 @unlink($this->zipname);
5193 // ----- Rename the temporary file
5195 //@rename($v_zip_temp_name, $this->zipname);
5196 PclZipUtilRename($v_zip_temp_name, $this->zipname);
5198 // ----- Return
5199 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5202 // --------------------------------------------------------------------------------
5204 // --------------------------------------------------------------------------------
5209 // --------------------------------------------------------------------------------
5212 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDuplicate", "archive_fil…
5215 // ----- Look if the $p_archive_filename exists
5218 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive to duplicate does not e…
5220 // ----- Nothing to duplicate, so duplicate is a success.
5223 // ----- Return
5224 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5228 // ----- Open the zip file
5229 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
5230 if (($v_result=$this->privOpenFd('wb')) != 1)
5232 // ----- Return
5233 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5237 // ----- Open the temporary file in write mode
5238 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
5241 $this->privCloseFd();
5245 // ----- Return
5246 …//--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo(…
5250 // ----- Copy the files from the archive to the temporary file
5256 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read $v_read_size bytes");
5258 @fwrite($this->zip_fd, $v_buffer, $v_read_size);
5259 $v_size -= $v_read_size;
5262 // ----- Close
5263 $this->privCloseFd();
5265 // ----- Close the temporary file
5268 // ----- Return
5269 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5272 // --------------------------------------------------------------------------------
5274 // --------------------------------------------------------------------------------
5278 // --------------------------------------------------------------------------------
5285 $this->error_code = $p_error_code;
5286 $this->error_string = $p_error_string;
5289 // --------------------------------------------------------------------------------
5291 // --------------------------------------------------------------------------------
5295 // --------------------------------------------------------------------------------
5302 $this->error_code = 0;
5303 $this->error_string = '';
5306 // --------------------------------------------------------------------------------
5308 // --------------------------------------------------------------------------------
5313 // --------------------------------------------------------------------------------
5316 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privDecrypt', "size=".$p_siz…
5319 // ----- To Be Modified ;-)
5325 // ----- Return
5326 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5329 // --------------------------------------------------------------------------------
5331 // --------------------------------------------------------------------------------
5336 // --------------------------------------------------------------------------------
5339 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privDisableMagicQuotes', "");
5342 // ----- Look if function exists
5345 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Functions *et_magic_quotes_runt…
5346 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5350 // ----- Look if already done
5351 if ($this->magic_quotes_status != -1) {
5352 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "magic_quote already disabled");
5353 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5357 // ----- Get and memorize the magic_quote value
5358 $this->magic_quotes_status = @get_magic_quotes_runtime();
5359 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Current magic_quotes_runtime st…
5361 // ----- Disable magic_quotes
5362 if ($this->magic_quotes_status == 1) {
5363 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Disable magic_quotes");
5367 // ----- Return
5368 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5371 // --------------------------------------------------------------------------------
5373 // --------------------------------------------------------------------------------
5378 // --------------------------------------------------------------------------------
5381 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privSwapBackMagicQuotes', ""…
5384 // ----- Look if function exists
5387 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Functions *et_magic_quotes_runt…
5388 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5392 // ----- Look if something to do
5393 if ($this->magic_quotes_status != -1) {
5394 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "magic_quote not modified");
5395 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5399 // ----- Swap back magic_quotes
5400 if ($this->magic_quotes_status == 1) {
5401 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Enable back magic_quotes");
5402 @set_magic_quotes_runtime($this->magic_quotes_status);
5405 // ----- Return
5406 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5409 // --------------------------------------------------------------------------------
5413 // --------------------------------------------------------------------------------
5415 // --------------------------------------------------------------------------------
5420 // --------------------------------------------------------------------------------
5423 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilPathReduction", "dir='$p_d…
5426 // ----- Look for not empty path
5428 // ----- Explode path by directory names
5431 // ----- Study directories from last to first
5433 for ($i=sizeof($v_list)-1; $i>=0; $i--) {
5434 // ----- Look for current path
5436 // ----- Ignore this directory
5443 // ----- First '/' i.e. root slash
5447 // ----- It is an invalid path, so the path is not modified
5450 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Invalid path is unchanged");
5454 // ----- Last '/' i.e. indicates a directory
5455 else if ($i == (sizeof($v_list)-1)) {
5458 // ----- Double '/' inside the path
5460 // ----- Ignore only the double '//' in path,
5465 // ----- Look for item to skip
5467 $v_skip--;
5470 $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?"/".$v_result:"");
5475 // ----- Look for skip
5479 $v_skip--;
5484 // ----- Return
5485 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5488 // --------------------------------------------------------------------------------
5490 // --------------------------------------------------------------------------------
5494 // said in an other way, if the file or sub-dir $p_path is inside the dir
5504 // --------------------------------------------------------------------------------
5507 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilPathInclusion", "dir='$p_d…
5510 // ----- Look for path beginning by ./
5514 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Replacing ./ by full path in p_…
5519 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Replacing ./ by full path in p_…
5522 // ----- Explode dir and path by directory separator
5528 // ----- Study directories paths
5532 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Working on dir($i)='".$v_list_d…
5534 // ----- Look for empty dir (path reduction)
5544 // ----- Compare the items
5546 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Items ($i,$j) are different");
5550 // ----- Next items
5555 // ----- Look if everything seems to be the same
5557 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Look for tie break");
5558 // ----- Skip all the empty items
5561 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Looking on dir($i)='".($i < $v_…
5564 // ----- There are exactly the same
5568 // ----- The path is shorter than the dir
5573 // ----- Return
5574 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5577 // --------------------------------------------------------------------------------
5579 // --------------------------------------------------------------------------------
5589 // --------------------------------------------------------------------------------
5592 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilCopyBlock", "size=$p_size,…
5597 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Src offset before read :".(@fte…
5598 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Dest offset before write :".(@f…
5602 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5605 $p_size -= $v_read_size;
5607 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Src offset after read :".(@ftel…
5608 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Dest offset after write :".(@ft…
5615 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5618 $p_size -= $v_read_size;
5626 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5629 $p_size -= $v_read_size;
5637 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
5640 $p_size -= $v_read_size;
5644 // ----- Return
5645 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5648 // --------------------------------------------------------------------------------
5650 // --------------------------------------------------------------------------------
5661 // --------------------------------------------------------------------------------
5664 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilRename", "source=$p_src, d…
5667 // ----- Try to rename the files
5669 …//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to rename file, try copy+u…
5671 // ----- Try to copy & unlink the src
5673 //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to copy file");
5677 … //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to unlink old filename");
5682 // ----- Return
5683 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5686 // --------------------------------------------------------------------------------
5688 // --------------------------------------------------------------------------------
5696 // --------------------------------------------------------------------------------
5699 …//--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilOptionText", "option='".$p…
5708 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_key);
5715 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
5718 // --------------------------------------------------------------------------------
5720 // --------------------------------------------------------------------------------
5730 // --------------------------------------------------------------------------------
5734 // ----- Look for potential disk letter
5738 // ----- Change potential windows directory separator
5745 // --------------------------------------------------------------------------------