Рецепт №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 ('Произошла ошибка при создании архива');
}
