добавить существующую папку с содержимым в zip php

В php я могу создать zip-файл, используя:

$zip = new ZipArchive();
$zipname = "somename" . '.zip';
$zip->open($zipname, ZipArchive::CREATE | ZipArchive::OVERWRITE);

и добавьте к нему файлы с помощью

$zip->addFile($pathtodir."filename.bla", "filenameinzip.bla");

или я могу добавить к нему пустую папку с помощью:

$zip->addEmptyDir("foldername");

но есть ли способ напрямую добавить папку, которая уже существует и имеет подконтент, в zip-файл?

ВАЖНО: решение в другой ветке добавляет только файлы в папку непосредственно в zip, но не саму папку. Я хочу сохранить структуру, то есть папка должна быть и в zip-файле, а не только в ее субконтенте. как:

zipname.zip/foldername/filenameinzip.bla

person yangsunny    schedule 02.12.2015    source источник
comment
В комментариях к функции добавления есть примеры того, как это сделать: php.net/ manual/en/ziparchive.addfile.php   -  person Gerald Schneider    schedule 02.12.2015
comment
Возможный дубликат Как заархивировать всю папку с помощью PHP   -  person Gerald Schneider    schedule 02.12.2015
comment
@GeraldSchneider: я уже читал это до того, как написал вопрос, но ответ в ветке добавляет файлы прямо в zip, без самой папки.   -  person yangsunny    schedule 02.12.2015


Ответы (1)


Вот что вам нужно:
1 — другое спросите в stackoverflow
2 – документация по php

person ElFranchoute    schedule 02.12.2015
comment
Это должен быть комментарий, а не ответ. - person Gerald Schneider; 02.12.2015
comment
Извините, я не могу написать комментарий, у меня должно быть 50 повторений. Я должен удалить его? - person ElFranchoute; 02.12.2015
comment
оба решения добавляют только файлы из каталога в zip, а НЕ папку, в которой находятся файлы. это то, что я имел в виду под ВАЖНЫМ - person yangsunny; 02.12.2015
comment
Читали ли вы вклад пользователя на этой странице php.net/manual/en/ziparchive.addemptydir .php ? - person ElFranchoute; 02.12.2015