(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 类型。但是,任何描述文件但不应该包含在文件内部的有用数据都可以存储。
元数据
任何包含要与文件一起存储的信息的 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" }