У меня есть zip-файл, загруженный на сервер для автоматического извлечения.Извлечь файлы в ZIP-файл из папки?
почтовый файл строительства, как это:
/zip_file.zip/folder1/image1.jpg
/zip_file.zip/folder1/image2.jpg
/zip_file.zip/folder1/image3.jpg
В настоящее время я эту функцию, чтобы извлечь все файлы, которые имеют расширение JPG:
$zip = new ZipArchive();
if($zip->open($file_path)){
$files = array();
for($i = 0; $i < $zip->numFiles; $i++){
$entry = $zip->statIndex($i);
// is it an image?
if($entry['size'] > 0 && preg_match('#\.(jpg)$#i', $entry['name'])){
$f_extract = $zip->getNameIndex($i);
$files[] = $f_extract;
}
}
if ($zip->extractTo($dir_name, $files) === TRUE) {
} else {
return FALSE;
}
$zip->close();
}
Но с помощью функции extractTo
, он будет экстракт до myFolder
в виде ff:
/myFolder/folder1/image1.jpg
/myFolder/folder1/image2.jpg
/myFolder/folder1/image3.jpg
Есть ли способ извлечь файлы в папке1 в корень myFolder?
Ideal:
/myFolder/image1.jpg
/myFolder/image2.jpg
/myFolder/image3.jpg
PS: упаковывают имя файла конфликта нужно только не извлекать или перезаписать файл.
Это решение будет перезаписывать файлы с одинаковыми именами в разных подкаталогах. – shelhamer
Спасибо @Fabianius –
Спасибо, что здесь http://php.net/manual/en/ziparchive.extractto.php#100802, но приземлился здесь, пытаясь понять, где находится ресурс, который показывает, что такое 'zip: //' protocol есть, у кого-нибудь есть ссылка для этого? – blamb