@@ 3710-3737 (lines=28) @@ | ||
3707 | } |
|
3708 | ||
3709 | // ----- Look for pre-extract callback |
|
3710 | if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { |
|
3711 | ||
3712 | // ----- Generate a local information |
|
3713 | $v_local_header = array(); |
|
3714 | $this->privConvertHeader2FileInfo($p_entry, $v_local_header); |
|
3715 | ||
3716 | // ----- Call the callback |
|
3717 | // Here I do not use call_user_func() because I need to send a reference to the |
|
3718 | // header. |
|
3719 | // eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); |
|
3720 | $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); |
|
3721 | if ($v_result == 0) { |
|
3722 | // ----- Change the file status |
|
3723 | $p_entry['status'] = "skipped"; |
|
3724 | $v_result = 1; |
|
3725 | } |
|
3726 | ||
3727 | // ----- Look for abort result |
|
3728 | if ($v_result == 2) { |
|
3729 | // ----- This status is internal and will be changed in 'skipped' |
|
3730 | $p_entry['status'] = "aborted"; |
|
3731 | $v_result = PCLZIP_ERR_USER_ABORTED; |
|
3732 | } |
|
3733 | ||
3734 | // ----- Update the informations |
|
3735 | // Only some fields can be modified |
|
3736 | $p_entry['filename'] = $v_local_header['filename']; |
|
3737 | } |
|
3738 | ||
3739 | ||
3740 | // ----- Look if extraction should be done |
|
@@ 4078-4105 (lines=28) @@ | ||
4075 | } |
|
4076 | ||
4077 | // ----- Look for pre-extract callback |
|
4078 | if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { |
|
4079 | ||
4080 | // ----- Generate a local information |
|
4081 | $v_local_header = array(); |
|
4082 | $this->privConvertHeader2FileInfo($p_entry, $v_local_header); |
|
4083 | ||
4084 | // ----- Call the callback |
|
4085 | // Here I do not use call_user_func() because I need to send a reference to the |
|
4086 | // header. |
|
4087 | // eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); |
|
4088 | $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); |
|
4089 | if ($v_result == 0) { |
|
4090 | // ----- Change the file status |
|
4091 | $p_entry['status'] = "skipped"; |
|
4092 | $v_result = 1; |
|
4093 | } |
|
4094 | ||
4095 | // ----- Look for abort result |
|
4096 | if ($v_result == 2) { |
|
4097 | // ----- This status is internal and will be changed in 'skipped' |
|
4098 | $p_entry['status'] = "aborted"; |
|
4099 | $v_result = PCLZIP_ERR_USER_ABORTED; |
|
4100 | } |
|
4101 | ||
4102 | // ----- Update the informations |
|
4103 | // Only some fields can be modified |
|
4104 | $p_entry['filename'] = $v_local_header['filename']; |
|
4105 | } |
|
4106 | ||
4107 | // ----- Trace |
|
4108 | ||
@@ 4193-4220 (lines=28) @@ | ||
4190 | } |
|
4191 | ||
4192 | // ----- Look for pre-extract callback |
|
4193 | if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { |
|
4194 | ||
4195 | // ----- Generate a local information |
|
4196 | $v_local_header = array(); |
|
4197 | $this->privConvertHeader2FileInfo($p_entry, $v_local_header); |
|
4198 | ||
4199 | // ----- Call the callback |
|
4200 | // Here I do not use call_user_func() because I need to send a reference to the |
|
4201 | // header. |
|
4202 | // eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); |
|
4203 | $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); |
|
4204 | if ($v_result == 0) { |
|
4205 | // ----- Change the file status |
|
4206 | $p_entry['status'] = "skipped"; |
|
4207 | $v_result = 1; |
|
4208 | } |
|
4209 | ||
4210 | // ----- Look for abort result |
|
4211 | if ($v_result == 2) { |
|
4212 | // ----- This status is internal and will be changed in 'skipped' |
|
4213 | $p_entry['status'] = "aborted"; |
|
4214 | $v_result = PCLZIP_ERR_USER_ABORTED; |
|
4215 | } |
|
4216 | ||
4217 | // ----- Update the informations |
|
4218 | // Only some fields can be modified |
|
4219 | $p_entry['filename'] = $v_local_header['filename']; |
|
4220 | } |
|
4221 | ||
4222 | ||
4223 | // ----- Look if extraction should be done |
|
@@ 4255-4284 (lines=30) @@ | ||
4252 | } |
|
4253 | ||
4254 | // ----- Change abort status |
|
4255 | if ($p_entry['status'] == "aborted") { |
|
4256 | $p_entry['status'] = "skipped"; |
|
4257 | } |
|
4258 | ||
4259 | // ----- Look for post-extract callback |
|
4260 | elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { |
|
4261 | ||
4262 | // ----- Generate a local information |
|
4263 | $v_local_header = array(); |
|
4264 | $this->privConvertHeader2FileInfo($p_entry, $v_local_header); |
|
4265 | ||
4266 | // ----- Swap the content to header |
|
4267 | $v_local_header['content'] = $p_string; |
|
4268 | $p_string = ''; |
|
4269 | ||
4270 | // ----- Call the callback |
|
4271 | // Here I do not use call_user_func() because I need to send a reference to the |
|
4272 | // header. |
|
4273 | // eval('$v_result = '.$p_options[PCLZIP_CB_POST_EXTRACT].'(PCLZIP_CB_POST_EXTRACT, $v_local_header);'); |
|
4274 | $v_result = $p_options[PCLZIP_CB_POST_EXTRACT](PCLZIP_CB_POST_EXTRACT, $v_local_header); |
|
4275 | ||
4276 | // ----- Swap back the content to header |
|
4277 | $p_string = $v_local_header['content']; |
|
4278 | unset($v_local_header['content']); |
|
4279 | ||
4280 | // ----- Look for abort result |
|
4281 | if ($v_result == 2) { |
|
4282 | $v_result = PCLZIP_ERR_USER_ABORTED; |
|
4283 | } |
|
4284 | } |
|
4285 | ||
4286 | // ----- Return |
|
4287 | return $v_result; |