PHP8 PharData::decompressFiles

2024-02-22 11:47 更新

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

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

說明

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

對于基于 tar 的存檔,此方法會引發(fā) BadMethodCallException,作為單個壓縮 文件格式不支持 tar 存檔中的文件。使用 PharData::compress() 壓縮整個基于 tar 的存檔。

對于基于 ZIP 的存檔,此方法會解壓縮 檔案。 如果有任何文件,則必須啟用 zlib 或 bzip2 擴(kuò)展才能利用此功能 使用 bzip2/zlib 壓縮進(jìn)行壓縮。

參數(shù) 

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

返回值 

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

錯誤/異常 

如果出現(xiàn)以下情況,則引發(fā) BadMethodCallException ZLIB擴(kuò)展不可用,或者如果有任何文件被壓縮 bzip2 壓縮和 bzip2 擴(kuò)展 未啟用。

示例

示例 #1 A PharData::decompressFiles() example

<?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 存檔中文件的實(shí)際大?。▔嚎s)
  • 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() - 如果壓縮了整個 phar 存檔(.tar.gz/tar.bz 等),則返回 Phar::GZ 或 PHAR::BZ2
  • PharData::compressFiles() - 壓縮當(dāng)前 tar/zip 存檔中的所有文件
  • Phar::getSupportedCompression() - 返回支持的壓縮算法數(shù)組
  • PharData::compress() - 使用 Gzip 或 Bzip2 壓縮整個 tar/zip 壓縮文件
  • PharData::d ecompress() - 解壓縮整個 Phar 存檔


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號