decompress() 會截斷檔名中第一個句點之後的任何部分,因為它假設它是副檔名的一部分。例如,如果您的 PharData 封存命名為「views-3.x-3.13.tar.gz」,則對其呼叫 decompress 會建立一個名為「views-3.tar」的 tar 檔案。請參閱 https://bugs.php.net/bug.php?id=58852
(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 內容的功能一樣,要成功執行此方法,phar.readonly INI 變數必須關閉。
此外,此方法會自動更改封存檔的副檔名,phar 封存檔預設為 .phar
,而基於 tar 的 phar 封存檔則為 .phar.tar
。或者,可以使用第二個參數指定副檔名。
extension
對於解壓縮,預設的副檔名是 .phar
和 .phar.tar
。使用此參數可指定其他副檔名。請注意,所有可執行的 phar 封存檔的檔名中都必須包含 .phar
。
如果 phar.readonly INI 變數開啟、zlib 擴充套件不可用或 bzip2 擴充套件未啟用,則會擲回 BadMethodCallException。
版本 | 說明 |
---|---|
8.0.0 |
extension 現在可以為 null。 |
範例 #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
?>
decompress() 會截斷檔名中第一個句點之後的任何部分,因為它假設它是副檔名的一部分。例如,如果您的 PharData 封存命名為「views-3.x-3.13.tar.gz」,則對其呼叫 decompress 會建立一個名為「views-3.tar」的 tar 檔案。請參閱 https://bugs.php.net/bug.php?id=58852