(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" }