そのまんま!

CXXXV. Rar 関数

導入

Rar は、Eugene Roshal が作成した強力で効率的なアーカイバです。 この拡張は Rar アーカイブの読み込み機能を提供しますが、書き込みは サポートしません。なぜなら UnRar ライブラリがその機能を有しておらず、 また実際のところそれ(書き込み)はライセンスで禁じられているからです。

Rar および UnRar についてのより詳細な情報は http://www.rarlabs.com/ で見つけられます。

要件

外部ライブラリを必要としません。

実行時設定

設定ディレクティブは定義されていません。

インストール手順

Rar は、現在 PECL http://pecl.php.net/package/rar で取得可能です。

また、以下のコマンドを使用して PECL インストーラで Rar 拡張モジュールを インストールすることができます。pecl -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("Rar アーカイブをオープンできません。");

$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 -- エントリのホスト OS を取得する
Rar::getMethod -- エントリの圧縮方法を取得する
Rar::getName -- エントリの名前を取得する
Rar::getPackedSize -- 圧縮後のエントリのサイズを取得する
Rar::getUnpackedSize -- 展開後のエントリのサイズを取得する
Rar::getVersion -- エントリを追加するのに用いたアーカイバのバージョンを取得する
rar_list -- Rar アーカイブのエントリ一覧を取得する
rar_open -- Rar アーカイブをオープンする