PharData::decompressFiles
(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)
PharData::decompressFiles — 現在の zip アーカイブ内のすべてのファイルの圧縮を解除する
説明
PharData::decompressFiles ( ) : bool
注意:
このメソッドは、
php.ini
のphar.readonly
が0
でないと Phar オブジェクトで動作しません。それ以外の場合は PharException がスローされます。
tar 形式の phar アーカイブでは、このメソッドは BadMethodCallException をスローします。 というのも、tar ファイルフォーマットではアーカイブ内の個別のファイルの圧縮をサポートしていないからです。 PharData::compress() を使用して、tar 形式の phar アーカイブ全体を圧縮します。
zip 形式のアーカイブでは、 このメソッドはアーカイブ内のすべてのファイルの圧縮を解除します。 もし bzip2/zlib で圧縮されているファイルがある場合は、 この機能を使用するには、zlib 拡張モジュールあるいは bzip2 拡張モジュールが有効になっている必要があります。
返り値
成功した場合に true
を、失敗した場合に false
を返します。
エラー / 例外
zlib 拡張モジュールが有効でない場合、 あるいは既に bzip2 圧縮されているファイルがあるのに bzip2 拡張モジュールが有効でない場合に BadMethodCallException をスローします。
例
例1 PharData::decompressFiles() の例
<?php$p = new PharData('/path/to/my.zip');$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)
参考
- PharFileInfo::getCompressedSize() - Phar アーカイブ内での実際のファイルの大きさ (圧縮された状態) を返す
- PharFileInfo::isCompressed() - エントリが圧縮されているかどうかを調べる
- PharFileInfo::compress() - 現在の Phar エントリを zlib あるいは bzip2 のいずれかで圧縮する
- PharFileInfo::decompress() - phar 内の現在の Phar エントリの圧縮を解除する
- Phar::canCompress() - phar 拡張モジュールが zlib あるいは bzip2 による圧縮をサポートしているかどうかを返す
- Phar::isCompressed() - phar アーカイブ全体が (.tar.gz/tar.bz などで) 圧縮されている場合に Phar::GZ あるいは PHAR::BZ2 を返す
- PharData::compressFiles() - 現在の tar/zip アーカイブ内のすべてのファイルを圧縮する
- Phar::getSupportedCompression() - サポートする圧縮アルゴリズムの配列を返す
- PharData::compress() - tar/zip アーカイブ全体を Gzip あるいは Bzip2 で圧縮する
- PharData::decompress() - Phar アーカイブ全体の圧縮を解除する