Работа с архивами через класс ZipArchive
$za = new ZipArchive();
if($za->open('file.zip') === true){
// Прочитать имя первого файла в архиве
$file = $za->getNameIndex(0);
// Прочитать содержимое первого файла непосредственно из архива
$cont = $za->getFromIndex(0);
// Извлечь из архива все файлы в указанную папку
$za->extractTo('/tmp/dir/');
// Извлечь из архива только указанные файлы
$za->extractTo('/tmp/dir/', array($file, $file2));
$za->close();
}