(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::decompress — Phar アーカイブ全体の圧縮を解除する
注意:
このメソッドは、php.ini の
phar.readonly
が0
でないと Phar オブジェクトで動作しません。それ以外の場合は PharException がスローされます。
tar 形式あるいは phar 形式の phar アーカイブの場合は、 このメソッドはアーカイブ全体の圧縮を解除します。
zip 形式の phar アーカイブの場合は、このメソッドは失敗して例外が発生します。 gzip で圧縮されたファイルの圧縮を解除するためには zlib 拡張モジュールが、そして bzip2 で圧縮されたファイルの圧縮を解除するためには bzip2 拡張モジュールが有効になっていなければなりません。 この関数は phar の内容を変更するので、使用するには INI 設定 phar.readonly が off になっていなければなりません。
さらに、このメソッドは自動的にアーカイブの拡張子を変更し、
phar アーカイブなら .phar
、
tar 形式のアーカイブなら .phar.tar
をデフォルトで追加します。
もうひとつの方法として、ファイルの拡張子を 2 番目のパラメータで指定することもできます。
extension
圧縮を解除する場合、デフォルトのファイル拡張子は
.phar
および .phar.tar
です。
このパラメータを使用すると、別の拡張子を指定することができます。
実行可能な phar アーカイブは、ファイル名に必ず
.phar
を含まなければならないことに注意しましょう。
Phar オブジェクトを返します。
失敗した場合は null
を返します。
INI 設定 phar.readonly が on の場合、zlib 拡張モジュールが使用できない場合、あるいは bzip2 拡張モジュールが使用できない場合に BadMethodCallException をスローします。
バージョン | 説明 |
---|---|
8.0.0 |
extension は、nullable になりました。
|
例1 Phar::decompress() の例
<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar.gz');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p3 = $p2->decompress(); // /path/to/my.phar を作成します
?>