Распаковка ZIP архива на сервере средствами PHP

Весьма редкая задача по работе с zip архивами (в частности с docx, xlsx форматами) требует наличия на сервере средств для работы с zip архивами. Поскольку на большинстве шаред хостингов доступа к этим средствам нет, был найден другой способ справиться с этой проблемой. Библиотека PclZip. Она соответственно позволяет полноценно работать с zip архивами на стороне сервера. В моем случае она применялась для распаковки docx файлов с целью внесения изменений в текст файлов (простейшая работа с шаблонами).

Примеры описанные в статьях Как разархивировать zip-архив php-скриптом и Большие возможности маленького сайта (Работа с Zip архивами) работоспособны и позволят быстро разобраться с API библиотеки PclZip.

Вот лишь 2 небольших примера кода:

Распаковка архива:

<?php

require_once('pclzip.lib.php');
$archive = new PclZip("archive.zip");
if ($archive->extract() == 0) {
die("Error : ".$archive->errorInfo(true));
}
?>

Упаковка файлов в архив:

<?php

require_once('pclzip.lib.php');//подключаем библиотеку

$files = glob('{,.ht}*', GLOB_BRACE);//получаем массив всех файлов в текущей папке, исключая .htaccess, .htpasswd

$s = array();
$aForbiddenNames = array('pclzip.lib.php','cgi-bin','zip.php','unzip.php');//указываем файлы, какие не следует включать в архив

//исключаем из массива файлов запрещенные
foreach($files as $file){
    if(in_array($file,$aForbiddenNames)) continue;
    $s[] = $file;
}
$s = implode(',', $s);//превращаем массив в строку

$archive = new PclZip('archive.zip');
$v_list = $archive->create($s);//создаем архив, передавая строку со списком файлов для архивации
if ($v_list == 0) {die("Error : ".$archive->errorInfo(true)); }
?>

Источники: 
http://umi-cms.spb.su/ref/php/zip/
http://php.russofile.ru/ru/authors/unsort/zip/
http://www.phpconcept.net/pclzip