Сегодня столкнулся с небольшой проблемой: нужно было быстро перенести файлы с одно сервера на другой. По сути это не проблема, но у меня медленный интернет, а файлов было много — по примерным подсчетам фалы переносились бы 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 языке?