Создаём zip-архив средствами PHP
Рассмотрим пример кода с комментариями:
Код PHP
$zip = new ZipArchive(); //Создаём объект для работы с ZIP-архивами $zip--->open("archive.zip", ZIPARCHIVE::CREATE); //Открываем (создаём) архив archive.zip $zip->addFile("index.php"); //Добавляем в архив файл index.php $zip->addFile("styles/style.css"); //Добавляем в архив файл styles/style.css $zip->close(); //Завершаем работу с архивом
Как результат, создание ZIP-архива - archive.zip. В который были загружены файлы index.php и styles/style.css. Как Вы понимаете, указывать нужно не просто название, а путь к файлу, который будет загружен в архив.
1. Создаём объект ZipArchive с помощью конструктора.
2. Создали архив с помощью метода open() объекта ZipArchive. Мы передали название архива (archive.zip) и константу ZIPARCHIVE::CREATE, которая сообщает, если архива не существует, то его надо создать.
3. С помощью метода addFile() добавляем в архив файлы. Сначала мы добавили файл "index.php", который находится в одной директории со скриптом. Далее мы добавили файл style.css, так же указав к нему правильный путь относительно скрипта.
4. А метод close() завершает работу с архивом. Всегда его выполняйте, чтобы освободить ресурсы компьютера, а также избежать самых различных проблем, связанных с работой этого скрипта и других скриптов, которым необходим доступ к этому архиву.
Извлекаем данные из zip-архива средствами PHP
Принцип извлечения чем-то похож на создание. Только вторая операция уже другая.
Алгоритм: открываем архив, извлекаем файлы, закрываем.
Рассмотирм пример:
Код PHP
$zip = new ZipArchive(); //Создаём объект для работы с ZIP-архивами //Открываем архив archive.zip и делаем проверку успешности открытия if ($zip--->open("archive.zip") === true) { $zip->extractTo("files/"); //Извлекаем файлы в указанную директорию $zip->close(); //Завершаем работу с архивом } else echo "Архива не существует!"; //Выводим уведомление об ошибке
Всё просто. Нужно указать только название файла (в нашем случае archive.zip) и куда извлечь файлы (в нашем случае в папку files, находящуюся в той же директории, что и php-файл).
Спасибо за внимание!
Комментарии