Работа с ZIP архивами. Запаковать и распаковать файлы

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


Работа с ZIP архивами. Запаковать и распаковать файлы: 1 комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*