Создание zip-архивов в PHP без ZipArchive

December 9, 2008 | By admin | Filed in: PHP.

Недавно для одного сайта нужно было сделать возможность скачивания нескольких файлов в виде  zip-архива.  Сайт – на хостинге, где нет возможности подключить/использовать ZipArchive. Есть поддержка zlib, но gz-архивы в Windows без дополнительных средств не открываются, а надо.

Вспомнил, что phpMyAdmin (который на хостинге установлен) умеет экспортировать данные в архивах различных форматов, в том числе и zip. При этом ZipArchive не используется. В PMA используется расположенный в папке /libraries/ файл zip.lib.php, в котором описан класс zipfile. У класса есть два метода: addFile() добавляет файл в архив, file() возвращает содержимое архива. Для работы класса нужна поддержка zlib, так как используется функция gzcompress().

Вот пример использования (CakePHP):


App::import('Vendor', 'zip', array('file' => 'zip.lib.php'));

$zipfile = new zipfile();

$zipfile->addFile($archive_contents, $file_name_in_archive);

file_put_contents('files.zip', $zipfile->file());


Tags: , ,

One comment on “Создание zip-архивов в PHP без ZipArchive

  1. Diana says:

    comment…

    Приятно читать блог…

Leave a Reply