(PECL rar >= 0.1)
RarEntry::extract — Извлекает элемент из архива
$dir
    [, string $filepath = ""
    [, string $password = NULL
    [, bool $extended_data = false
   ]]] )
   RarEntry::extract() извлекает содержимое элемента.
   При этом создается новый файл в указанной директории
   dir с именем совпадающим с именем элемента,
   если только не зада второй аргумент. Смотрите подробнее ниже.
  
dir
       Путь к директории, куда необходимо извлечь файлы. Этот
       параметр учитывается только если не указан параметр
       filepath. Если оба параметра не указаны,
       то файлы извлекаются в текущую директорию.
      
filepath
       Путь (полный или относительный) содержит директорию
       и имя файла извлекаемого файла. Этот параметр переопределяет
       и параметр dir и оригинальное имя файла.
      
password
       Пароль используется для расшифровки текущего элемента. Если
       элемент не зашифрован, то этот параметр не будет использован и
       его можно не указывать. Если же этот параметр не указан, а 
       элемент зашифрован, то будет использован пароль, переданный 
       функции rar_open(), если ее вызывали.
       Если передан неверный пароль, явно или неявно через 
       rar_open(), то проверка CRC будет неудачной 
       и будет возвращен FALSE.
       Вы можете проверить является ли элемент зашифрованным с помощью
       RarEntry::isEncrypted().
      
extended_data
      Если TRUE, то в извлекаемый файл будет добавлена 
      дополнительная информация, такая как NTFS ACL и владелец в
      системе Unix, если они присутствовали в архиве.
     
До версии 2.0.0, не обрабатывала относительные пути корректно. Используйте для этой ситуации realpath().
   Возвращает TRUE в случае успешного завершения  или FALSE в случае возникновения ошибки.
  
| Версия | Описание | 
|---|---|
| 3.0.0 | Был добавлен параметр extended_data. | 
| 3.0.0 | Исправлена поддержка RAR архивов с повторяющимися именами элементов. | 
Пример #1 Пример с RarEntry::extract()
<?php
$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");
$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");
$entry->extract('/dir/to'); // create /dir/to/Dir/file.txt
$entry->extract(false, '/dir/to/new_name.txt'); // create /dir/to/new_name.txt
?>
Пример #2 Как извлечь все файлы из архива:
<?php
/* example by Erik Jenssen aka erix */
$filename = "foobar.rar";
$filepath = "/home/foo/bar/";
$rar_file = rar_open($filepath.$filename);
$list = rar_list($rar_file);
foreach($list as $file) {
    $entry = rar_entry_get($rar_file, $file);
    $entry->extract("."); // extract to the current dir
}
rar_close($rar_file);
?>