phar アーカイブの内容をディレクトリに展開する

# Phar::extractTo

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::extractTo — phar アーカイブの内容をディレクトリに展開する

### 説明

public function Phar::extractTo(string `$directory`, array|string|null `$files` = `null`, bool `$overwrite` = `false`): bool

phar アーカイブ内のすべてのファイルをディスクに展開します。 展開されたファイルやディレクトリは、アーカイブに保存されたときのパーミッションを維持しています。 オプションのパラメータを使用すると、どのファイルを展開するかを制御したり 既存のファイルを上書きするかどうかを指定したりすることができます。 2 番目のパラメータ `files` には、 展開したいファイルやディレクトリの名前、あるいはその配列を指定します。 デフォルトでは、このメソッドは既存のファイルを上書きしません。 3 番目のパラメータを true にすると既存のファイルを上書きさせることができます。 このメソッドは ZipArchive::extractTo() と同じようなものです。

### パラメータ

`directory`

  指定した `files` の展開先のパス。

`files`

  展開したいファイル名/ディレクトリ名、あるいはその配列。 この引数をスキップするには `null` を指定します。

`overwrite`

  `true` にすると既存のファイルを上書きします。

### 戻り値

成功した場合に `true` を返します。 しかし、例外がスローされているかどうかを確認したうえで 例外がなければ成功とみなすほうがいいでしょう。

### エラー / 例外

変更内容をディスクに書き込む際にエラーが発生した場合は PharException をスローします。

### 例

例1 Phar::extractTo() の例

    <?php
    try {
        $phar = new Phar('myphar.phar');
        $phar->extractTo('/full/path'); // すべてのファイルを展開します
        $phar->extractTo('/another/path', 'file.txt'); // file.txt のみを展開します
        $phar->extractTo('/this/path',
            array('file1.txt', 'file2.txt')); // 2 つのファイルだけを展開します
        $phar->extractTo('/third/path', null, true); // すべてのファイルを展開し、上書きします
    } catch (Exception $e) {
        // エラー処理
    }
    ?>

### 注意

> 注意: Windows の NTFS ファイルシステムには、ファイル名で使う場合にサポートしていない文字があります。具体的には、`<|>*?":` です。末尾にドットがあるファイル名もサポートしていません。いくつかの展開ツールと異なり、このメソッドはこれらの文字をアンダースコアで置き換えませんし、そのようなファイルを展開すると失敗します。

### 参考

- PharData::extractTo() - tar/zip アーカイブの内容をディレクトリに展開する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open