Углубляться в алгоритмы архивирования и сжатия я не буду, просто скачайте готовый класс createZip. Автор данного класса индусский программист Er. Rochak Chauhan.
Этот класс может создавать ZIP архивы из списков файлов.
Класс предоставляет средства для добавления отдельных файлов или целых каталогов в список файлов, упакованных в архив ZIP.
Класса может также воспроизводить необходимые заголовки ответа запрос, чтобы скачивать архив ZIP.
Класс createZip обеспечивает полноценную работу с формированием нового ZIP архива, с возможностью его выдачи на лету или сохранения на диск. Покажу несколько простых приёмов.
<!--[if gte mso 9]> <!--[if gte mso 9]> Normal 0 false false false EN-US ZH-CN X-NONE <!--[if gte mso 9]> <!--[if gte mso 10]> <!--[endif]-->
Углубляться в алгоритмы архивирования и сжатия я не буду, просто скачайте готовый класс createZip. Автор данного класса индусский программист Er. Rochak Chauhan.
Подробное описание класса:
Этот класс может создавать ZIP архивы из списков файлов.
Класс предоставляет средства для добавления отдельных файлов или целых каталогов в список файлов, упакованных в архив ZIP.
Класса может также воспроизводить необходимые заголовки ответа запрос, чтобы скачивать архив ZIP.
Класс createZip обеспечивает полноценную работу с формированием нового ZIP архива, с возможностью его выдачи на лету или сохранения на диск. Покажу несколько простых приёмов.
<?php
// Ну, во-первый нужно объявить объект данного класса:
$createZip = new createZip;
// Добавим в корень архива текстовый файл:
$fileContents = "Hello world!";
$createZip->addFile($fileContents, "textfile.txt");
// Создадим новую директорию:
$createZip->addDirectory("images/");
// Ну а теперь допустим у нас есть картинка image.png в директории где выполняется
//данный скрипт. Загрузим эту картинку в директорию images нашего архива:
$fileContents = file_get_contents("image.png");
$createZip->addFile($fileContents, "images/image.png");
// Сохраняем архив на диск и выдаём посетителю ссылку:
$filename = "archive.zip";
$fd = fopen($filename, "wb");
$out = fwrite($fd, $createZip->getZippedfile());
fclose($fd);
echo "Скачать архив: <a href=\"$filename\">$filename</a>";
?>
Всё достаточно легко и просто. При желании, можно выдать архив на лету, после чего его сразу удалить. В классе для этого есть вспомогательная функция forceDownload.