(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
Phar::getMetadata — phar アーカイブのメタデータを返す
アーカイブのメタデータを取得します。メタデータは、PHP の任意の変数をシリアライズしたものです。
メタデータにアクセスすると、メタデータの展開処理が発生します。
これによって、任意の PHP コードの実行をトリガできます。
このメソッドを信頼できない phar アーカイブに対して使ってはいけません。
使う場合は、unserializeOptions
を安全な方法で設定してください。
パラメータはありません。
Phar アーカイブのメタデータとして保存されている、シリアライズ可能な任意の PHP の値を返します。
メタデータが保存されていない場合は null を返します。
| バージョン | 説明 |
|---|---|
| 8.0.0 |
引数 unserializeOptions が追加されました。
|
例1 Phar::getMetadata() の例
<?php
// 確実に消しておきます
@unlink('brandnewphar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file.php'] = '<?php echo "hello";';
$p->setMetadata(array('bootstrap' => 'file.php'));
var_dump($p->getMetadata());
} catch (Exception $e) {
echo 'phar を変更できません:', $e;
}
?>上の例の出力は以下となります。
array(1) {
["bootstrap"]=>
string(8) "file.php"
}