PHP Conference Nagoya 2025

xattr_set

(PECL xattr >= 0.9.0)

xattr_set 拡張属性を設定する

説明

xattr_set(
    string $filename,
    string $name,
    string $value,
    int $flags = 0
): bool

この関数は、ファイルの拡張属性の値を設定します。

拡張属性には二種類の異なる名前空間、つまり、ユーザーとルートがあります。 ユーザー名前空間は、すべてのユーザーで利用可能ですが、ルート名前空間は、ルート権限を有するユーザーのみ利用可能です。 xattr はデフォルトでユーザー名前空間で処理を行いますが、 flags 引数によりこれを変更することができます。

パラメータ

filename

属性を設定するファイル。

name

拡張属性の名前。もし属性が存在しない場合は新しく作成され、 存在する場合は上書きされます。この振る舞いは、 flags パラメータを使用することで変更可能です。

value

属性の値。

flags

サポートされる xattr のフラグ
XATTR_CREATE 拡張属性が既に存在する場合、関数は失敗します。
XATTR_REPLACE 拡張属性が存在しない場合、関数は失敗します。
XATTR_DONTFOLLOW シンボリックリンクのリンク先をたどらず、リンクそのものを操作します。
XATTR_ROOT root (信頼された) 名前空間に属性を設定します。root 権限が必要です。

戻り値

成功した場合に true を、失敗した場合に false を返します。

例1 .wav ファイルに拡張属性を設定する

<?php
$file
= 'my_favourite_song.wav';
xattr_set($file, 'Artist', 'Someone');
xattr_set($file, 'My ranking', 'Good');
xattr_set($file, 'Listen count', '34');

/* ... その他のコード ... */

printf("あなたは、この曲を %d 回再生しました", xattr_get($file, 'Listen count'));
?>

参考

add a note

User Contributed Notes 1 note

up
0
blr at blr dot hu
9 years ago
Be aware when use on filesystem without xattr support, it returns true. (Bug reported)
To Top