Скопируйте содержимое папки в Zip php

У меня следующая папка с файлами:

2147485934: {image.ai, image.jpg, image.psd}

И я хочу создать новый zip с этими файлами:

<?
$zip = new ZipArchive;
$zip->open('newPack.zip', ZipArchive::CREATE);
foreach (glob("2147485934/*") as $file) {
$zip->addFile($file);
}
$zip->close();
?>

Это работает, но новый zip-файл имеет ту же структуру:
newPack.zip --> 2147485934: {image.ai, image.jpg, image.psd}
и я хочу получить следующую структуру внутри моего zip:
newPack.zip --> image.ai, image.jpg, image.psd //без папки 2147485934

Любая помощь с этой проблемой будет высоко оценена


person Kakitori    schedule 13.03.2014    source источник


Ответы (2)


Попробуй это:

$zip->addFile($file, basename($file));

Второй аргумент определяет имя файла внутри архива. Код, который я добавил, отделяет имя каталога от имени файла внутри архива.

person sneils    schedule 13.03.2014
comment
Работал как шарм! Большое спасибо! - person Kakitori; 13.03.2014

Перейти к выбранной папке с помощью chdir:

http://www.php.net/chdir

<?
$zip = new ZipArchive;
$zip->open('newPack.zip', ZipArchive::CREATE);
chdir('2147485934')
foreach (glob("*") as $file) {
$zip->addFile($file);
}
$zip->close();
?>
person Alberto Fecchi    schedule 13.03.2014