Forum und email

Rar 関数

導入

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

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

要件

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

実行時設定

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

インストール手順

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

また、以下のコマンドを使用して PECL インストーラで Rar 拡張モジュールを インストールすることができます。pecl -v install rar

tar.gz パッケージをダウンロードし、Rar を手動でインストールすることも 可能です。

Example#1 Rar のインストール

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

Windows ユーザは、拡張 DLL php_rar.dll をここから ダウンロードします。» https://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)

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