Sc0undRel
@Sc0undRel

Как архивировать файлы на PHP?

Здравсвуйте.
Подскажите, пожалуйста, как на PHP заархивировать нужную мне папку/файлы в .zip архив?

Желательно наиболее быстрый способ, чтобы архивация 10 mb происходила максимально быстро и незаметно.
  • Вопрос задан
  • 6142 просмотра
Пригласить эксперта
Ответы на вопрос 3
vanton
@vanton
Человек и пароход
Самый быстрый способ - использование командной строки на сервере, к примеру:
exec("tar -cvf /full/path/to/filename.tar.gz folder_to_archive/");


Есть еще решение от David Walsh, которое использует php класс ZipArchive, но php должен быть с поддержкой данного класса
Ответ написан
Stalker_RED
@Stalker_RED
Ответ написан
Комментировать
copist
@copist
Empower people to give
Если требуется ООП, то можно сделать так на базе варианта, который предложил @vanton

<?php
/**
 * @see http://php.net/manual/ru/class.ziparchive.php
 */
class MyZipArchive extends ZipArchive // унаследовал
{
   public function addFiles($files = array()) // расширил
   {
      // ... см. http://davidwalsh.name/create-zip-php 
   }
}

$zip = new MyZipArchive;
$zip->open($zipTmpAbsFilePath, \ZipArchive::OVERWRITE);
$zip->addFiles(array(
  'preload-images/1.jpg',
  'rod.jpg',
));

// ещё есть стандартные функции
	// $zip->addGlob('path/to/files/*.*');
	// $zip->addPattern('*.*', 'path/to/files/')

$zip->close();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы