CXXXIII. 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 アーカイブをオープンする