exec zip root path - PullRequest
       32

exec zip root path

0 голосов
/ 21 октября 2011

У меня возникли проблемы с архивированием каталога.Следующая строка поможет, но также включает в себя корневой каталог.

exec('zip -r '.$tmp_zip.' '.$filename_no_ext.'/rss-ticker/*'); 

Так что я хочу только сжать все в директории rss-ticker Как это исправить?

Спасибоваша помощь

Ответы [ 2 ]

1 голос
/ 21 октября 2011

Какую zip-программу вы используете? tar работает так, как вы хотите, чтобы выше, тогда вы можете gzip это.

В качестве альтернативы, chdir() к каталогу, который вы хотите сжать, и укажите свой путь как * - он должен получать только файлы в текущем рабочем каталоге.

Если вы не можете заставить его работать так, как вы хотите (или даже можете), попробуйте ZIP Extension или эту стороннюю библиотеку - сделайте это в чистый PHP сделает ваш код более переносимым.

0 голосов
/ 21 октября 2011

Если у вас нет веских причин не делать этого (например, желание причинить себе много боли и головной боли), вам действительно следует использовать инструментарий ZipArchive .Есть пример того, как на этот вопрос .

Что касается работы с zip для работы с exec, я заметил два момента:нужна переменная $filename_no_ext.Если у вас просто есть 1012 *.Прямо сейчас, поскольку вы запускаете rss-ticker с /, предполагается, что папка находится в корне файловой системы.Я не думаю, что вы этого хотите.

Вам не нужен завершающий *, чтобы заставить работать функцию командной строки zip.
...