PHP8 Phar::decompressFiles

2024-02-20 09:17 更新

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

Phar::d ecompressFiles — 解壓縮當(dāng)前 Phar 存檔中的所有文件

說明

public Phar::decompressFiles(): boolvoid
注意:此方法需要 將 中的 設(shè)為 以適合 Phar 對象. 否則, 將拋出PharException.php.iniphar.readonly0

對于基于 tar 的 phar 存檔,此方法會拋出 BadMethodCallException,作為單個(gè)壓縮 文件格式不支持 tar 存檔中的文件。使用 Phar::compress() 壓縮整個(gè)基于 tar 的 phar 存檔。

對于基于 ZIP 和 phar 的 phar 存檔,此方法解壓縮 法爾檔案。 如果有任何文件,則必須啟用 zlib 或 bzip2 擴(kuò)展才能利用此功能 使用 bzip2/zlib 壓縮進(jìn)行壓縮。 與修改 phar 內(nèi)容的所有功能一樣,phar.readonly INI 變量必須關(guān)閉 為了成功。

參數(shù) 

此函數(shù)沒有參數(shù)。

返回值 

成功時(shí)返回 true, 或者在失敗時(shí)返回 false。

錯(cuò)誤/異常 

如果出現(xiàn)以下情況,則引發(fā) BadMethodCallException phar.readonly INI 變量處于打開狀態(tài),zlib 擴(kuò)展名不可用,或者如果有任何文件是使用 bzip2 壓縮和 bzip2 擴(kuò)展 未啟用。

示例 

示例 #1 A Phar::d ecompressFiles() example

<?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)

參見 

  • PharFileInfo::getCompressedSize() - 返回 Phar 存檔中文件的實(shí)際大小(壓縮)
  • PharFileInfo::isCompressed() - 返回條目是否被壓縮
  • PharFileInfo::compress() - 使用 zlib 或 bzip2 壓縮當(dāng)前 Phar 條目
  • PharFileInfo::d ecompress() - 解壓縮 phar 中的當(dāng)前 Phar 條目
  • Phar::canCompress() - 返回 phar 擴(kuò)展是否支持使用 zlib 或 bzip2 進(jìn)行壓縮
  • Phar::isCompressed() - 如果壓縮了整個(gè) phar 存檔(.tar.gz/tar.bz 等),則返回 Phar::GZ 或 PHAR::BZ2
  • Phar::compressFiles() - 壓縮當(dāng)前 Phar 存檔中的所有文件
  • Phar::getSupportedCompression() - 返回支持的壓縮算法數(shù)組
  • Phar::compress() - 使用 Gzip 或 Bzip2 壓縮整個(gè) Phar 存檔
  • Phar::d ecompress() - 解壓縮整個(gè) Phar 存檔


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號