Php/docs/phar.decompressfiles

提供:Dev Guides
< Php
移動先:案内検索

Phar::decompressFiles

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

Phar::decompressFiles現在の Phar アーカイブ内のすべてのファイルの圧縮を解除する


説明

public Phar::decompressFiles ( ) : bool

注意:

このメソッドは、php.iniphar.readonly0 でないと Phar オブジェクトで動作しません。それ以外の場合は PharException がスローされます。

tar 形式の phar アーカイブでは、このメソッドは BadMethodCallException をスローします。 というのも、tar ファイルフォーマットではアーカイブ内の個別のファイルの圧縮をサポートしていないからです。 Phar::compress() を使用して、tar 形式の phar アーカイブ全体を圧縮します。

zip 形式および phar 形式の phar アーカイブでは、 このメソッドは Phar アーカイブ内のすべてのファイルの圧縮を解除します。 もし bzip2/zlib で圧縮されているファイルがある場合は、 この機能を使用するには、zlib 拡張モジュールあるいは bzip2 拡張モジュールが有効になっている必要があります。 この関数は phar の内容を変更するので、使用するためには INI 設定 phar.readonly が off になっている必要があります。


返り値

成功した場合に true を、失敗した場合に false を返します。


エラー / 例外

INI 設定 phar.readonly が on の場合、zlib 拡張モジュールが有効でない場合、 あるいは既に bzip2 圧縮されているファイルがあるのに bzip2 拡張モジュールが有効でない場合に BadMethodCallException をスローします。


例1 Phar::decompressFiles() の例

<?php$p = new Phar('/path/to/my.phar', 0, 'my.phar');$p['myfile.txt'] = 'hi';$p['myfile2.txt'] = 'hi';$p->compressFiles(Phar::GZ);foreach ($p as $file) {    var_dump($file->getFileName());    var_dump($file->isCompressed());    var_dump($file->isCompressed(Phar::BZ2));    var_dump($file->isCompressed(Phar::GZ));}$p->decompressFiles();foreach ($p as $file) {    var_dump($file->getFileName());    var_dump($file->isCompressed());    var_dump($file->isCompressed(Phar::BZ2));    var_dump($file->isCompressed(Phar::GZ));}?>

上の例の出力は以下となります。


string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

参考