Сегодня столкнулся с небольшой проблемой: нужно было быстро перенести файлы с одно сервера на другой. По сути это не проблема, но у меня медленный интернет, а файлов было много — по примерным подсчетам фалы переносились бы 2-3 часа. И поэтому я решил на первом сервере запаковать файлы в архив, перекинуть его и распаковать на другом сервере. Раньше с архивами на unix сервере я работал через SSH доступ в консоли, но и тут мне опять не повезло — такого доступа у меня нет, только ftp. И в связи со всеми этими проблемами пришлось писать два скрипта: один запаковывает файлы, а другой распаковывает.
Возможно эти два скрипта пригодятся еще кому-нибудь:
Запаковываем файлы в zip архив
<?php
$pathdir='test/'; // путь к папке, файлы которой будем архивировать
$nameArhive = 'test.zip'; //название архива
$zip = new ZipArchive; // класс для работы с архивами
if ($zip -> open($nameArhive, ZipArchive::CREATE) === TRUE){ // создаем архив, если все прошло удачно продолжаем
$dir = opendir($pathdir); // открываем папку с файлами
while( $file = readdir($dir)){ // перебираем все файлы из нашей папки
if (is_file($pathdir.$file)){ // проверяем файл ли мы взяли из папки
$zip -> addFile($pathdir.$file, $file); // и архивируем
echo("Заархивирован: " . $pathdir.$file) , '<br/>';
}
}
$zip -> close(); // закрываем архив.
echo 'Архив успешно создан';
}else{
die ('Произожла ошибка при создании архива');
}
?>
Распаковываем zip архив
<?php
$pathdir='test/'; // путь к папке, в которую будет распакован архив
$nameArhive = 'test.zip'; //название архива
$zip = new ZipArchive; // класс для работы с архивами
if ($zip -> open($nameArhive) === TRUE){ // открываем архив
$zip -> extractTo($pathdir); // распаковываем архив
$zip -> close(); // закрываем архив.
echo 'Архив распакован в ' . $pathdir;
}else{
die ('Произожла ошибка при создании архива');
}
?>

Этот класс внедрен в php языке?