Создание ZIP-архива на PHP
Вчера на форуме у меня спросили про создание ZIP-архивов на PHP. Я немного подумал и понял, что это тема будет интересна большому числу людей, ведь ZIP-архивирование на PHP весьма популярная тема. И в этой статье я покажу пример, как создаётся 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-архив, у которого в корне будет лежать файл index.php, а также будет создана директория styles, в которой будет находиться файл style.css. Я думаю, что это всё очевидно и логично. А теперь комментирую, что мы с Вами делали:
- Создали объект ZipArchive с помощью конструктора.
- Создали архив с помощью метода open() объекта ZipArchive. Мы передали название архива (archive.zip) и константу ZIPARCHIVE::CREATE, которая сообщает, если архива не существует, то его надо создать.
- Метод addFile() добавляет в архив файлы. Сначала мы добавили файл "index.php", который находится в одной директории со скриптом. Далее мы добавили файл style.css, так же указав к нему правильный путь относительно скрипта.
- Метод close() завершает работу с архивом. Всегда его выполняйте, чтобы освободить ресурсы компьютера, а также избежать самых различных проблем, связанных с работой этого скрипта и других скриптов, которым необходим доступ к этому архиву.
Вот таким простым способом Вы можете создавать в автоматическом режиме ZIP-архивы с помощью PHP. В следующей статье мы с Вами разберём, как извлекать ZIP-архив через PHP.
-
- Михаил Русаков
Комментарии (21):
Напишите статью о том, как создать дерево файлов в каталоге и в подкаталогах.
Ответить
Не очень понятно, что означает "как создать дерево файлов"? Это просто вывести на страницу список всех каталогов, подкаталогов, файлов, файлов внутри подкаталогов и так далее. Вы это хотите?
Ответить
Да, конечно так. Я пытался так сделать, но у меня работало с ошибками.
Ответить
Хорошо, напишу в пятницу такую статью.
Ответить
Это будет интересно. Спасибо.
Ответить
А как в архив добавить папку с под папками и файлами чтоб не добавлять все файлы в ручную?
Ответить
Так просто нельзя. Всё равно придется создавать создавать каждую папку как пустую и в неё уже добавлять файлы.
Ответить
Михаил, а почему при создании объекта на строку с объектом $zip = new ZipArchive(); выдаёт ошибку ("Fatal error: Class 'ZipArchive' not found in X:\home\oop.local\www\zip.php on line 16") файл zip.php у меня является классом
Ответить
Нет расширения этого php_zip.dll
Ответить
Это получается что вообще нельзя создавать архивы? Это ведь Денвер
Ответить
Установите дополнительные модули, их можно скачать на официальном сайте.
Ответить
Дали бы сразу и ссылку в этой статье на расширение.
Ответить
А как создать поисковую систему?
Ответить
Также как и обычный сайт, для которого нужен движок. Вот курс по движкам: http://srs.myrusakov.ru/php
Ответить
а вы можете создать поисковик и почем создадите?
Ответить
Все заказы я принимаю на [email protected]
Ответить
Михаил я когда скопировал ваш код то ошибок денвер не дал, но архива так и не появилось?
Ответить
В коде архивируются определённые файлы, видимо, у Вас этих файлов нет. Поэтому просто скопировать не получится.
Ответить
Михаил, скажите а запаролить можно архив по средствам php?
Ответить
Здравствуйте, vladlaas. Нельзя.
Ответить
Не создаёт архив.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.