(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
PharFileInfo::setMetadata — 設定儲存檔案的檔案特定中繼資料
PharFileInfo::setMetadata() 僅應用於儲存無法以檔案現有資訊表示的客製化資料。如果資料量很大,或是包含詮釋資料的檔案很多,詮釋資料會顯著降低載入 phar 封存的效能。需要注意的是,phar 內建支援檔案權限;可以使用 PharFileInfo::chmod() 方法設定檔案權限。與所有修改 phar 內容的功能一樣,如果檔案位於 Phar 封存中,則必須關閉 phar.readonly INI 變數才能成功修改。位於 PharData 封存中的檔案則沒有此限制。
詮釋資料的一些可能用途包括傳遞在將檔案從 phar 提取到磁碟時應設定的使用者/群組。其他用途可能包括明確指定要返回的 MIME 類型。然而,任何描述檔案但又不應包含在檔案內的有效資料都可以儲存。
metadata
任何包含要與檔案一起儲存之資訊的 PHP 變數
不回傳任何值。
範例 #1 PharFileInfo::setMetadata() 範例
<?php
// 確保檔案不存在
@unlink('brandnewphar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file.txt'] = 'hello';
$p['file.txt']->setMetadata(array('user' => 'bill', 'mime-type' => 'text/plain'));
var_dump($p['file.txt']->getMetaData());
} catch (Exception $e) {
echo '無法建立/修改 phar: ', $e;
}
?>
上述範例將輸出
array(2) { ["user"]=> string(4) "bill" ["mime-type"]=> string(10) "text/plain" }