PharData::extractTo

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

説明

public bool PharData::extractTo(string $directory, arraystringnull $files = null, bool $overwrite = false)

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

パラメータ

directory

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

files

展開したいファイル名/ディレクトリ名、あるいはその配列。

overwrite

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

戻り値

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

エラー / 例外

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

例1 PharData::extractTo の例

<?php
try {
    $phar = new PharData('myphar.tar');
    $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 ファイルシステムには、ファイル名で使う場合にサポートしていない文字があります。具体的には、<|>*?": です。末尾にドットがあるファイル名もサポートしていません。いくつかの展開ツールと異なり、このメソッドはこれらの文字をアンダースコアで置き換えませんし、そのようなファイルを展開すると失敗します。

参考

  • Phar::extractTo