Разработка PHP скрипта для извлечения файлов из zip архива

7 ноября, 2007

В прошлый раз я рассказывал о том, как создать zip архив с помощью PHP. Мы написали небольшой PHP скрипт, который создает zip архив файлами из заданной папки.
Сегодня я покажу, как выполнить обратную операцию, т.е. извлечь файлы из архива.

Напомню, что для работы с архивом необходимо создать объект типа ZipArchive. С помощью методов этого объекта можно добавлять/удалять/извлекать файлы, получать информацию об архиве и т.д.

Извлечение выполняется в три этапа:
1) открываем архив (с помощью метода open(…));
2) извлекаем файлы (метод extractTo(…));
3) закрываем архив (метод close()).

Теперь посмотрим пример:

  1. <?php
  2. //папка с архивом
  3. $archive_dir = "E:/archiveFolder/";
  4. //папка в которой будут размещены файлы архива
  5. $dest_dir = "E:/destFolder/";
  6.  
  7. //открываем zip архив
  8. $zip = new ZipArchive();
  9. //имя файла архива
  10. $fileName = $archive_dir."backup_6_11_2007_08_11_09.zip";
  11. if ($zip->open($fileName) !== true) {
  12.     fwrite(STDERR, "Error while openning archive file");
  13.     exit(1);
  14. }
  15.  
  16. //читаем сведения об архиве
  17. fwrite(STDOUT, "Number of files: ".$zip->numFiles."\n");
  18. fwrite(STDOUT, "status: ".$zip->status."\n");
  19. fwrite(STDOUT, "statusSys: ".$zip->statusSys."\n");
  20. fwrite(STDOUT, "filename: ".$zip->filename."\n");
  21. fwrite(STDOUT, "comment: ".$zip->comment."\n");
  22.  
  23. //извлекаем файлы
  24. $zip->extractTo($dest_dir);
  25.  
  26. //закрываем архив
  27. $zip->close();
  28.  
  29. fwrite(STDOUT, "Files extracted\n");
  30.  
  31. exit(0);
  32. ?>

Как видите, скрипт достаточно простой.
В переменных $archive_dir, $dest_dir, $fileName мы задаем имя папки с архивом, имя папки, в которую будут распакованы файлы, и имя архива (предполагается, что архив находится в папке $archive_dir).

После этого мы открываем архив (строка 11). Обратите внимание, что здесь используется тот же метод open(), что и при создании архива, но константа ZIPARCHIVE::CREATE не указывается. Мы собираемся что-то извлечь из архива, значит, он должен существовать.

Затем мы выводим информацию об архиве (строки 17-21) и распаковываем его (строка 24). Метод extractTo(…) принимает только два параметра. Первый – имя папки, в которую будет извлечено содержимое архива. Второй (необязательный) – имена объектов, которые необходимо извлечь. В нашем примере второй параметр не задан. Это означает, что будет распаковано все содержимое архива.

После окончания работы с архивом его необходимо закрыть, что мы и сделали в строке 27.

Запустить скрипт можно командой:
php путь_к_папке_со_скриптом\имя_скрипта.php

Если вы все сделали правильно, то в папке “E:/destFolder/” вы найдете извлеченные файлы.

Постовой
Очень полезная вещь в доме - makita hr 2440

Понравилась статья? Подпишитесь на продолжение rss link !

]]>

Добавьте эту страницу в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

]]>

Опубликовано в PHP

]]>

Комментарии (2)

Вы можете отслеживать обсуждение записи с помощью RSS 2.0 rss link

Вы также можете оставить комментарий, или трекбек с Вашего сайта.

  1. [...] Разработка PHP скрипта для извлечения файлов из zip архив… [...]

  2. [...] Разработка PHP скрипта для извлечения файлов из zip архив… Рубрика: PHP  |  Отзывы (RSS)  |  Трекбек [...]

Оставить комментарий

Введите ваш комментарий

* - обязательные для заполнения поля

Quicktags:

]]>