$zip = new \ZipArchive();
$files = [];
$res = $zip->open($file);
if ($res === true) {
for ($i = 0; $i < $zip->numFiles; $i++) {
$stat = $zip->statIndex($i, \ZipArchive::FL_UNCHANGED);
$extension = pathinfo($stat['name'], PATHINFO_EXTENSION);
if(($extension == 'jpg' || $extension == 'jpeg' || $extension == 'png' || $extension == 'gif') && $stat['size'] > 5000) {
$new_name = str_pad($i + 1, 2, '0', STR_PAD_LEFT).".$extension";
// проверяем, есть ли файл с таким именем
$tmp_file = $zip->statName($new_name, \ZipArchive::FL_UNCHANGED);
if ($tmp_file['index'] != $i) {
$tmp_extension = pathinfo($tmp_file['name'], PATHINFO_EXTENSION);
$zip->renameIndex($tmp_file['index'], $new_name."sfdfUUioom897667JKwq.".$tmp_extension);
}
//
$zip->renameIndex($i, $new_name);
array_push($files, $new_name);
}
}
$zip->extractTo($extractPath, $files);
$zip->close();
}
Если убрать блок "проверяем, есть ли файл с таким именем" то все работает нормально. Если блок есть, то массив $files формируется правильно, но extractTo ничего не извлекает, выдает false.