Распаковка ZIP архива на сервере


Часто приходится закачивать по ftp кучу мелких файлов? А любимый ftp клиент закачивает часами?
Можно упростить себе жизнь и сделать это следующим образом: упаковать в zip-архив на локальном компьютере, закачать полученный архив на сервер, и распаковать.

Первым делом скачиваем класс (http://www.phpconcept.net/pclzip/) pclzip.lib.php
Далее создаем файлик, например unpack.php со следующим содержимым:

<?php
require_once('pclzip.lib.php');
$archive = new PclZip('имя_архива.zip');
if ($archive->extract() == 0) { die("Error : ".$archive->errorInfo(true));}
else {echo('Ok!');}
?>

Можно еще упростить задачу. Переименовываем файл класса pclzip.lib.php в unpack.php, хотя это не обязательно, и дописываем в конце файла:

$archive = new PclZip('имя_архива.zip');
if ($archive->extract() == 0) { die("Error : ".$archive->errorInfo(true));}
else {echo('Ok!');}

если лениво столько писать, то 2 делаем магические строчки

$archive = new PclZip('архив.zip');
$archive->extract();

Остается только запустить в брайзере http://www.j369.ru/unpack.php
Возможные трудности:

  • Установленный хостером лимит памяти (например 16МВ)- разбиваем архив на куски небольшого рамера
  • Скрипт-распаковщик начинает ругаться- часто забываем поставить права 777 на основную директорию
  • Проблема с редактированием распакованных фалов- серьёзная трудность, часто не лечится, связана с владельцем файла :(

С классом можно много чего изобретать, достаточно полно описано тату-http://php.russofile.ru/ru/authors/unsort/zip/

Выражаю огромную признательность доброму самаритянину долгие годы хранившему содержимое j369 (умершего вместве с хостингом от компании 3FN). Я в знак признательности готов подарить исходники любого сервиса. j369

Метки:

Оставить комментарий

CAPTCHA image