У меня есть следующий код:
$zip = new ZipArchive();
$zip->open($nome, ZIPARCHIVE::CREATE);
foreach($files as $file) {
$zip->addFile($file,basename($file));
}
$files — это массив с путями к реальным файлам, и они похожи на «../folder/anotherFolder/file1.txt», «../folder/anotherFolder/file2.txt» и так далее.
Zip-файл создан успешно, но когда я его разархивирую, у меня есть как file1.txt, так и file2.txt, как и ожидалось, из-за параметра basename($file) $zip->addFile(), а также папки/другой папки /file1.txt и папка/anotherFolder/file2.txt.
Если я уберу второй параметр, basename($file), в моем zip-файле не будет повторяющихся записей, но структура папок/других папок/ будет там, в то время как все, что я хотел, это просто и только файл1.txt и файл2.txt.
Любая идея, почему это происходит?
$zip->close();
позже в вашем коде? Судя по тому, что я вижу, ваш код выглядит нормально (при условии, что вы закроете его позже). ссылка douglasradburn.co.uk/create-a-zip- file-using-php и многие другие сайты делают это так... - person Nic3500   schedule 20.06.2018