2024 年 PHP 日本研討會

Phar::extractTo

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

Phar::extractTo將 phar 封存的內容解壓縮到目錄

說明

公開 Phar::extractTo(字串 $directory, 陣列|字串|null $files = null, 布林 $overwrite = false): 布林

將 phar 封存檔中的所有檔案解壓縮到磁碟。解壓縮的檔案和目錄會保留存檔中儲存的權限。選用參數允許選擇性地控制要解壓縮的檔案,以及是否可以覆寫磁碟上的現有檔案。第二個參數 files 可以是要解壓縮的檔案或目錄的名稱,或是要解壓縮的檔案和目錄名稱的陣列。預設情況下,此方法不會覆寫現有檔案,可以將第三個參數設定為 true 以啟用覆寫檔案。此方法類似於 ZipArchive::extractTo()

參數

directory

要將指定 files 解壓縮到的路徑

files

要解壓縮的檔案或目錄的名稱,或是要解壓縮的檔案/目錄陣列,null 則略過此參數

overwrite

設定為 true 以啟用覆寫現有檔案

傳回值

成功時傳回 true,但最好檢查是否有拋出例外,如果沒有拋出例外則假設成功。

錯誤/例外

如果在將變更寫入磁碟時發生錯誤,則拋出 PharException

範例

範例 #1 Phar::extractTo() 範例

<?php
try {
$phar = new Phar('myphar.phar');
$phar->extractTo('/full/path'); // 解壓縮所有檔案
$phar->extractTo('/another/path', 'file.txt'); // 僅解壓縮 file.txt
$phar->extractTo('/this/path',
array(
'file1.txt', 'file2.txt')); // 僅解壓縮 2 個檔案
$phar->extractTo('/third/path', null, true); // 解壓縮所有檔案,並覆寫
} catch (Exception $e) {
// 處理錯誤
}
?>

注意事項

注意:

Windows NTFS 檔案系統不支援檔名中的某些字元,即 <|>*?":。檔名也不能以點號結尾。與某些解壓縮工具不同,此方法不會將這些字元替換為底線,而是無法解壓縮此類檔案。

另請參閱

新增註解

使用者貢獻的註解 1 則註解

msucco at mac dot com
5 年前
在命令列 (*nix) 上,您可以使用以下命令解壓縮 phar 檔案

$ mkdir tmp && cd $_
$ phar extract -f ../file.phar
To Top