PHP8 Phar::compress

2024-02-20 09:17 更新

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

Phar::compress — 使用 Gzip 或 Bzip2 壓縮整個 Phar 存檔

說明

public Phar::compress(int $compression, ?string $extension = null): ?Phar
注意:此方法需要 將 中的 設(shè)為 以適合 Phar 對象. 否則, 將拋出PharException.php.iniphar.readonly0

對于基于 tar 和 phar 的 phar 存檔,此方法使用 gzip 壓縮或 bzip2 壓縮。生成的文件可以用 gunzip 命令/bunzip 命令,或使用 Phar 直接透明地訪問 外延。

對于基于 ZIP 的 phar 存檔,此方法將失敗并出現(xiàn)異常。 必須啟用 zlib 擴(kuò)展才能壓縮 使用 gzip 壓縮時,bzip2 擴(kuò)展名必須 啟用以使用 bzip2 壓縮進(jìn)行壓縮。 與修改 phar 內(nèi)容的所有功能一樣,phar.readonly INI 變量必須關(guān)閉 為了成功。

此外,如果傳遞給擴(kuò)展名,此方法會自動重命名存檔、追加或刪除擴(kuò)展名 刪除壓縮?;蛘撸梢詫⑽募U(kuò)展名指定為第二個 參數(shù)。.gz.bz2Phar::NONE

參數(shù)

compression

壓縮必須是 之一,以添加壓縮或刪除壓縮。Phar::GZPhar::BZ2Phar::NONE

extension

默認(rèn)情況下,擴(kuò)展名是 or 用于壓縮 phar 存檔,而 or 用于 壓縮 tar 存檔。對于解壓縮,默認(rèn)文件擴(kuò)展名 是 和 ..phar.gz.phar.bz2.phar.tar.gz.phar.tar.bz2.phar.phar.tar

返回值

返回 Phar 對象,或在失敗時返回 null。

錯誤/異常

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

更新日志

版本說明
8.0.0extension現(xiàn)在是可為 null 的。

示例

示例 #1 A Phar::compress() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.phar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.phar already exists
?>

參見

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


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號