Как архивировать файлы на PHP?
Самый быстрый способ - использование командной строки на сервере, к примеру:exec("tar -cvf /full/path/to/filename.tar.gz folder_to_archive/");
Есть еще решение от David Walsh, которое использует php класс ZipArchive, но php должен быть с поддержкой данного класса
Если требуется ООП, то можно сделать так на базе варианта, который предложил @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();