Архивируем и распаковываем zip-архивы

Порой бывает необходимо заархивировать или разархивировать файлы или папки с файлами на сайте. Иногда у хостеров в панели управления уже есть встроенные утилиты для архивации. Но что делать, если таковых нет?
Тогда нам в помощь идет библиотека PclZip.
Прежде, чем работать с этой библиотекой, убедитесь, что у вас на сервере включен php-модуль zip.
После этого копируем на сервер два файлика из архива add_zip.zip, который прикреплен в конце статьи. Копируем в ту папку, из которой нужно начать архиврование. То есть, если вам нужно заархивировать только содержимое папки "/images/", о копируем файлы туда. Если нужно заархивировать весь сайт, то копируем файлы в корень. Архивация происходит рекурсивно - все подпапки с файлами будут добавлены в архив.
Вот код из файла
<? define('ROOT', rtrim(str_replace('\\', '/', dirname(__FILE__)), '/'). '/'); $name_arch = ROOT. 'archive.zip'; $files_dir = rtrim(ROOT, '/'); $files_to_arch = array(); require_once(ROOT. 'pclzip.lib.php'); for($d = @opendir($files_dir); $file = @readdir($d);) { if($file!='.' && $file!='..') { $files_to_arch[]= $file; } } chdir($files_dir); $archive = new PclZip($name_arch); $v_list = $archive->create(implode(',', $files_to_arch)); if($v_list == 0) { die("Error : ".$archive->errorInfo(true)); } else { echo 'OK'; } ?>
Теперь немного пояснений. В переменной $name_arch вы указываете название архива, который будет создан в конце. Если архивация пройдет успешно, вы увидите на экране надпись "ОК", в противном же случае вам будут выведены ошибки.
Тут стоит отметить такую особенность: если у вас очень много файлов на сервере, а время выполнения скриптов ограничено (обычно в настройках у хостеров стоит 30-60 сек.), то вы получите битый архив на выходе и пустой экран без надписей по истечению времени.
Распаковка архива
Тут дела обстоят гораздо проще. За нас с вами уже всё придумали умные люди. А именно команда известного сайта TemplateMonster. С каждым их шаблоном в архиве идет файлик для распаковки. Я лишь русифицировал его для большего удобства. Вам нужно будет закачать его на сервер, запустить и выбрать файл для распаковки. Файлик лежит в прикрепленнов снизу статьи архиве TM_unzipper.zip.
Как видите, все очень просто.