Внешний вид сайта:

Создаём zip-архив средствами PHP

ZIP-архивирование на сайте — тема уже довольно популярная. Не буду Вас долго томить, сразу перейдём к закомментированному коду и пояснениям. Алгоритм работы кода: открываем/создаём архив, добавляем файлы, закрываем.

Рассмотрим пример кода с комментариями:

Код 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-файл).

Спасибо за внимание!

Комментарии

Нет комментариев. Ваш будет первым!