CXXIII. Rar функции

Введение

Rar - это мощный и эффективный архиватор, созданный Eugene Roshal. Данное расширение позволяет читать Rar архивы, однако не дает возможности их записывать так как эта операция не поддерживается библиотекой UnRar и напрямую запрещена условиями ее лицензии.

Больше информации о Rar и UnRar можно найти здесь:http://www.rarlabs.com/.

Требования

Эти функции всегда доступны.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Установка

Расширение Rar в настоящее время доступно в PECL http://pecl.php.net/package/rar.

Вы также можете воспользоваться установщиком pear, чтобы установить расширение Rar. Для этого необходимо использовать команду: pear -v install rar.

Также вы можете скачать архив tar.gz и установить Rar вручную:

Пример 1. Установка Rar

gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install

Пользователи Windows могут скачать расширение в виде библиотеки dll php_rar.dll здесь: http://snaps.php.net/win32/PECL_STABLE/.

Типы ресурсов

В расширении Rar используется один ресурс: дескриптор файла, возвращаемый rar_open().

Предопределенные константы

RAR_HOST_MSDOS (integer)

RAR_HOST_OS2 (integer)

RAR_HOST_WIN32 (integer)

RAR_HOST_UNIX (integer)

RAR_HOST_BEOS (integer)

Примеры

Пример 2. Пример работы с расширением Rar

<?php

$rar_file
= rar_open('example.rar') or die("Невозможно открыть архив");

$entries = rar_list($rar_file);

foreach (
$entries as $entry) {
    echo
'Файл: ' . $entry->getName() . "\n";
    echo
'Размер сжатого элемента: ' . $entry->getPackedSize() . "\n";
    echo
'Размер в распакованном состоянии: ' . $entry->getUnpackedSize() . "\n";

    
$entry->extract('/dir/extract/to/');
}

rar_close($rar_file);

?>

В этом примере открывается архивный файл Rar и каждый заархивированный элемент извлекается в указанную директорию.

Содержание
rar_close -- Закрывает Rar архив и высвобождает занятые ресурсы
rar_entry_get -- Возвращает объект из Rar архива
Rar::extract -- Извлекает элемент из архива
Rar::getAttr -- Возвращает атрибуты элемента архива
Rar::getCrc -- Возвращает CRC элемента архива
Rar::getFileTime -- Возвращает время последней модификации элемента архива
Rar::getHostOs -- Возвращает данные об операционной системе хоста
Rar::getMethod -- Возвращает метод компрессии элемента массива
Rar::getName -- Возвращает имя элемента архива
Rar::getPackedSize -- Возвращает размер сжатого элемента
Rar::getUnpackedSize -- Возвращает размер элемента в распакованном состоянии
Rar::getVersion -- Возвращает версию архиватора, использованного для компрессии элемента архива
rar_list -- Возвращает список элементов, входящих в Rar архив
rar_open -- Открывает Rar архив