# xattr Functions

## Introduction

The xattr extension allows for the manipulation of extended attributes on a filesystem.

## Requirements

To use xattr, you will need libattr installed. It is available at » http://oss.sgi.com/projects/xfs/.

> Note: These functions only work on filesystems that support extended attributes, and have them enabled at mount time. Some common filesystems that support extended attributes are ext2, ext3, reiserfs, jfs, and xfs.

## Installation

xattr is currently available through PECL » http://pecl.php.net/package/xattr.

If » PEAR is available on your *nix-like system you can use the pear installer to install the xattr extension, by the following command: pear -v install xattr.

You can always download the tar.gz package and install xattr by hand:

Example#1 xattr install by hand

    gunzip xattr-xxx.tgz
    tar -xvf xattr-xxx.tar
    cd xattr-xxx
    phpize
    ./configure && make && make install

## Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

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

## Table of Contents

- xattr_get — Get an extended attribute
- xattr_list — Get a list of extended attributes
- xattr_remove — Remove an extended attribute
- xattr_set — Set an extended attribute
- xattr_supported — Check if filesystem supports extended attributes