Веб-дизайнеры и разработчики знают, что сжатие файлов в один zip архив, необходимая мера, когда дело доходит до загрузки огромного количества файлов на сервер, что означает необходимость распаковать файл после его загрузки.

Программисты приходят к помощи всяческих php библиотек, размеры некоторых сопоставимы с размером самого zip архива (привет PclZip). Ниже приведен возможно самый короткий код, который Вы можете использовать, чтобы распаковать zip файл на сервере при помощи чистого PHP.
<?php
$zip = new ZipArchive;
$res = $zip->open('sc.zip');
if ($res === TRUE) {
$zip->extractTo('sc/');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>
Это очень полезно в тех случаях, когда у вас нет доступа к CPanel или другой оболочке сервера. Просто убедитесь, что каталог, в который вы хотите извлечь файлы существует и имеет разрешение на запись, иначе возникнут проблемы при распаковке.
Простой usecase, когда я использую этот код: Когда вы качаете CMS Joomla, можно поступить двумя способами
- Распаковать ее у себя на компьютере и ждать пока несколько тысяч файлов загрузятся по ftp
- Залить на сервер этот zip файл вместе с небольшим install.php, который распакует все файлы


Комментарии
нужно создать файл php и его запустить через браузер, или что значит куда угодно?, какое имя файла? об этом надо умалчивать??????
Извините это просто код и куда и что ни слова.
Полагаю Вы в программировании еще тот чайник. Данный код вставляется в файл с разширением *.php и загружается на сервер с поддержкой php. Но это элементарная наброска кода. Данный код (если есть знания) можно автоматизировать вплоть до таких вещей, что он будет сам создавать нужную директорию, сам назначать права на запись в эту директорию и выполнять сам скрипт. Или к примеру извлекать все архивы с указанной папке по шаблону: если имя архива myarchive.zip, то создавать папку myarchive_unzip/ и извлекать все туда. Вообще ограничений никаких нет, все ограничивается рамками Вашей фантазии и умениями :) Удачи!
Код автора идеален для моих задач!
Цитата:
$zip->extractTo('.');