# xattr_set

(PECL xattr >= 0.9.0)

xattr_set — Set an extended attribute

### 说明

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

This function sets the value of an extended attribute of a file.

扩展的属性有两种 不同的命名空间：user 和 root。user 命名空间对所有用户均有效，而 root 命名空间仅对拥有 root 权限的用户有效。 xattr 默认在 user 命名空间上操作，但可使用 `flags` 参数进行更改。

### 参数

`filename`

  The file in which we set the attribute.

`name`

  The name of the extended attribute. This attribute will be created if it doesn't exist or replaced otherwise. You can change this behaviour by using the `flags` parameter.

`value`

  The value of the attribute.

`flags`

  Supported xattr flags
  `XATTR_CREATE` | Function will fail if extended attribute already exists.
  `XATTR_REPLACE` | Function will fail if extended attribute doesn't exist.
  `XATTR_DONTFOLLOW` | Do not follow the symbolic link but operate on symbolic link itself.
  `XATTR_ROOT` | Set attribute in root (trusted) namespace. Requires root privileges.

### 返回值

成功时返回 `TRUE`， 或者在失败时返回 `FALSE`。

### 范例

Example #1 Sets extended attributes on .wav file

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

    /* ... other code ... */

    printf("You've played this song %d times", xattr_get($file, 'Listen count'));
    ?>

### 参见

- xattr_get() - Get an extended attribute
- xattr_remove() - Remove an extended attribute