Рецепт №75. Из книги «128 рецептов php»
Перейти к оглавлению
Иногда бывает необходимо программно запаковать файлы в zip архив. Для этих целей отлично подходит модуль — ZipArchive, который практически на всех серверах установлен вместе с самим php. Если же данный модуль не установлен, то следует это сделать. Для работы с модулем в php имеется класс – ZipArchive. Именно он и будет использован в рецепте, показывающем как можно запаковать все файлы и подпапки внутри выбранной папки.
Пример:
// путь к папке, файлы которой будем архивировать $pathdir='test/'; //название архива $nameArhive = 'test.zip'; // класс для работы с архивами $zip = new ZipArchive; // создаем архив, если все прошло удачно продолжаем if ( $zip->open($nameArhive, ZipArchive::CREATE) === true ){ // открываем папку с файлами $dir = opendir($pathdir); // перебираем все файлы из нашей папки while($file = readdir($dir)){ // проверяем файл ли мы взяли из папки if (is_file($pathdir.$file)){ // архивируем $zip->addFile($pathdir.$file, $file); // выводим название // заархивированного файла echo "Заархивирован: " . $pathdir . $file . '<br/>'; } } $zip->close(); // закрываем архив. echo 'Архив успешно создан'; }else{ die ('Произошла ошибка при создании архива'); }