@@ 3693-3719 (lines=27) @@ | ||
3690 | } |
|
3691 | ||
3692 | // ----- Look for pre-extract callback |
|
3693 | if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { |
|
3694 | ||
3695 | // ----- Generate a local information |
|
3696 | $v_local_header = array(); |
|
3697 | $this->privConvertHeader2FileInfo($p_entry, $v_local_header); |
|
3698 | ||
3699 | // ----- Call the callback |
|
3700 | // Here I do not use call_user_func() because I need to send a reference to the |
|
3701 | // header. |
|
3702 | $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); |
|
3703 | if ($v_result == 0) { |
|
3704 | // ----- Change the file status |
|
3705 | $p_entry['status'] = "skipped"; |
|
3706 | $v_result = 1; |
|
3707 | } |
|
3708 | ||
3709 | // ----- Look for abort result |
|
3710 | if ($v_result == 2) { |
|
3711 | // ----- This status is internal and will be changed in 'skipped' |
|
3712 | $p_entry['status'] = "aborted"; |
|
3713 | $v_result = PCLZIP_ERR_USER_ABORTED; |
|
3714 | } |
|
3715 | ||
3716 | // ----- Update the informations |
|
3717 | // Only some fields can be modified |
|
3718 | $p_entry['filename'] = $v_local_header['filename']; |
|
3719 | } |
|
3720 | ||
3721 | ||
3722 | // ----- Look if extraction should be done |
|
@@ 4059-4086 (lines=28) @@ | ||
4056 | } |
|
4057 | ||
4058 | // ----- Look for pre-extract callback |
|
4059 | if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { |
|
4060 | ||
4061 | // ----- Generate a local information |
|
4062 | $v_local_header = array(); |
|
4063 | $this->privConvertHeader2FileInfo($p_entry, $v_local_header); |
|
4064 | ||
4065 | // ----- Call the callback |
|
4066 | // Here I do not use call_user_func() because I need to send a reference to the |
|
4067 | // header. |
|
4068 | // eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); |
|
4069 | $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); |
|
4070 | if ($v_result == 0) { |
|
4071 | // ----- Change the file status |
|
4072 | $p_entry['status'] = "skipped"; |
|
4073 | $v_result = 1; |
|
4074 | } |
|
4075 | ||
4076 | // ----- Look for abort result |
|
4077 | if ($v_result == 2) { |
|
4078 | // ----- This status is internal and will be changed in 'skipped' |
|
4079 | $p_entry['status'] = "aborted"; |
|
4080 | $v_result = PCLZIP_ERR_USER_ABORTED; |
|
4081 | } |
|
4082 | ||
4083 | // ----- Update the informations |
|
4084 | // Only some fields can be modified |
|
4085 | $p_entry['filename'] = $v_local_header['filename']; |
|
4086 | } |
|
4087 | ||
4088 | // ----- Trace |
|
4089 | ||
@@ 4173-4199 (lines=27) @@ | ||
4170 | } |
|
4171 | ||
4172 | // ----- Look for pre-extract callback |
|
4173 | if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { |
|
4174 | ||
4175 | // ----- Generate a local information |
|
4176 | $v_local_header = array(); |
|
4177 | $this->privConvertHeader2FileInfo($p_entry, $v_local_header); |
|
4178 | ||
4179 | // ----- Call the callback |
|
4180 | // Here I do not use call_user_func() because I need to send a reference to the |
|
4181 | // header. |
|
4182 | $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); |
|
4183 | if ($v_result == 0) { |
|
4184 | // ----- Change the file status |
|
4185 | $p_entry['status'] = "skipped"; |
|
4186 | $v_result = 1; |
|
4187 | } |
|
4188 | ||
4189 | // ----- Look for abort result |
|
4190 | if ($v_result == 2) { |
|
4191 | // ----- This status is internal and will be changed in 'skipped' |
|
4192 | $p_entry['status'] = "aborted"; |
|
4193 | $v_result = PCLZIP_ERR_USER_ABORTED; |
|
4194 | } |
|
4195 | ||
4196 | // ----- Update the informations |
|
4197 | // Only some fields can be modified |
|
4198 | $p_entry['filename'] = $v_local_header['filename']; |
|
4199 | } |
|
4200 | ||
4201 | ||
4202 | // ----- Look if extraction should be done |
|
@@ 4234-4262 (lines=29) @@ | ||
4231 | } |
|
4232 | ||
4233 | // ----- Change abort status |
|
4234 | if ($p_entry['status'] == "aborted") { |
|
4235 | $p_entry['status'] = "skipped"; |
|
4236 | } |
|
4237 | ||
4238 | // ----- Look for post-extract callback |
|
4239 | elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { |
|
4240 | ||
4241 | // ----- Generate a local information |
|
4242 | $v_local_header = array(); |
|
4243 | $this->privConvertHeader2FileInfo($p_entry, $v_local_header); |
|
4244 | ||
4245 | // ----- Swap the content to header |
|
4246 | $v_local_header['content'] = $p_string; |
|
4247 | $p_string = ''; |
|
4248 | ||
4249 | // ----- Call the callback |
|
4250 | // Here I do not use call_user_func() because I need to send a reference to the |
|
4251 | // header. |
|
4252 | $v_result = $p_options[PCLZIP_CB_POST_EXTRACT](PCLZIP_CB_POST_EXTRACT, $v_local_header); |
|
4253 | ||
4254 | // ----- Swap back the content to header |
|
4255 | $p_string = $v_local_header['content']; |
|
4256 | unset($v_local_header['content']); |
|
4257 | ||
4258 | // ----- Look for abort result |
|
4259 | if ($v_result == 2) { |
|
4260 | $v_result = PCLZIP_ERR_USER_ABORTED; |
|
4261 | } |
|
4262 | } |
|
4263 | ||
4264 | // ----- Return |
|
4265 | return $v_result; |