PclZip – внешняя php-библиотека для управления ZIP-архивами.
Пример извлечения файлов из архива:
include_once(SYS_BASE_PATH.'libs/pclzip.lib.php');
$path = SYS_BASE_PATH.'ext/test.zip';
$archive = new PclZip($path);
$mess = '';
$list = $archive->extract(PCLZIP_OPT_PATH, SYS_BASE_PATH.'ext/');
if($list == 0)
{
$mess .= $parser->gt('unzipped_fail', __FILE__);
}
if($mess) print $mess;
Пример добавления файлов в архив
Создайте каталог ext/test/ и поместите в него файл test.txt. Поместите в любой из контроллеров следующий код:
include_once(SYS_BASE_PATH.'libs/pclzip.lib.php');
$path = SYS_BASE_PATH.'ext/test/test.zip';
$archive = new PclZip($path);
$mess = '';
$list = $archive->add(SYS_BASE_PATH.'ext/test', PCLZIP_OPT_REMOVE_PATH, SYS_BASE_PATH.'ext');
if($list == 0)
{
$mess .= $parser->gt('unzipped_fail', __FILE__);
}
if($mess) print $mess;
В результате работы этого кода в каталоге ext/test/ будет создан архив test.zip и внутри этого архива будет расположен файл test.txt.
Подробнее с методами класса можно ознакомиться самостоятельно в файле libs/pclzip.lib.php.