関数・クラス解説

RarEntry::extract

version:PECL rar >= 0.1 (公式)

アーカイブのエントリを展開する

公式リファレンス

書式

public RarEntry::extract ( string $dir [, string $filepath = "" [, string $password = NULL [, bool $extended_data = FALSE ]]] ) : bool

説明

RarEntry::extract() は、エントリのデータを展開します。 二番目の引数が指定されていなければ、 指定した dir にエントリの名前と同名の新しいファイルを作成します。 詳細は以下を参照ください。

パラメータ

dir
ファイルを展開するディレクトリへのパス。 このパラメータが考慮されるのは filepath が指定されていないときだけです。両方のパラメータが空の場合は、 カレントディレクトリへの展開を試みます。
filepath
取り出すファイルのディレクトリとファイル名を含むパス (相対パスあるいは絶対パス)。 このパラメータは、dir の内容と元のファイル名を両方とも上書きします。
password
このエントリの暗号化に使うパスワード。 エントリが暗号化されていない場合は、この値は使われずに無視されます。 このパラメータが省略されていてエントリが暗号化されていた場合は、もし rar_open() でパスワードを指定していればそれを使います。 このパラメータや rar_open() で指定したパスワードが間違っていたときは、 CRC チェックが失敗してこのメソッドが失敗し、FALSE を返します。 パスワードが要求されているときにパスワードを指定していなければ、 このメソッドは失敗して FALSE を返します。 エントリが暗号化されているかどうかを知るには RarEntry::isEncrypted() を使います。
extended_data
TRUE にすると、NTFS の ACL や Unix のオーナー情報といった拡張情報が アーカイブに設定されていれば、取り出したファイルにもそれを設定します。
警告 バージョン 2.0.0 より前は、この関数では相対パスを正しく扱えません。 回避策として realpath() を使いましょう。

返値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

注意

警告 バージョン 2.0.0 より前は、この関数では相対パスを正しく扱えません。 回避策として realpath() を使いましょう。

更新履歴

バージョン 説明
PECL rar 3.0.0 extended_data が追加されました。
PECL rar 3.0.0 エントリ名が繰り返される RAR アーカイブも対応するようになりました。

サンプル

例1 RarEntry::extract() の例

$rar_file = rar_open('example.rar') or die("Rar アーカイブのオープンに失敗しました"); $entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("そのようなエントリは見つかりません"); $entry->extract('/dir/to'); // /dir/to/Dir/file.txt を作成します $entry->extract(false, '/dir/to/new_name.txt'); // /dir/to/new_name.txt を作成します

例2 アーカイブ内のすべてのファイルを展開する方法

/* erix こと Erik Jenssen によるサンプルです */ $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("."); // カレントディレクトリに展開します } rar_close($rar_file);

参考

  • RarEntry::getStream() - このエントリのファイルハンドラを取得する
  • rar:// wrapper
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール