(PHP 4, PHP 5)
stat — Gives information about a file
Gathers the statistics of the file named by filename . If filename is a symbolic link, statistics are from the file itself, not the symlink.
lstat() is identical to stat() except it would instead be based off the symlinks status.
Path to the file.
Numeric | Associative (since PHP 4.0.6) | Description |
---|---|---|
0 | dev | device number |
1 | ino | inode number * |
2 | mode | inode protection mode |
3 | nlink | number of links |
4 | uid | userid of owner * |
5 | gid | groupid of owner * |
6 | rdev | device type, if inode device |
7 | size | size in bytes |
8 | atime | time of last access (Unix timestamp) |
9 | mtime | time of last modification (Unix timestamp) |
10 | ctime | time of last inode change (Unix timestamp) |
11 | blksize | blocksize of filesystem IO ** |
12 | blocks | number of blocks allocated ** |
* On Windows this will always be 0.
** Only valid on systems supporting the st_blksize type - other systems (e.g. Windows) return -1.
In case of error, stat() returns FALSE.
Upon failure, an E_WARNING is emitted.
Version | Description |
---|---|
4.0.6 | In addition to returning these attributes in a numeric array, they can be accessed with associative indices, as noted next to each parameter |
Example #1 stat() example
<?php
/* Get file stat */
$stat = stat('C:\php\php.exe');
/*
* Print file access file, this is the same
* as calling fileatime()
*/
echo 'Access time: ' . $stat['atime'];
/*
* Print file modification time, this is the
* same as calling filemtime()
*/
echo 'Modification time: ' . $stat['mtime'];
/* Print the device number */
echo 'Device number: ' . $stat['dev'];
Example #2 Using stat() information together with touch()
<?php
/* Get file stat */
$stat = @stat('C:\php\php.exe');
/* Did we failed to get stat information ? */
if(!$stat)
{
echo 'Stat call failed...';
}
else
{
/*
* We want the access time to be 1 week
* before the current access time.
*/
$atime = $stat['atime'] + 604800;
/* Touch the file */
if(!@touch('some_file.txt', time(), $atime))
{
echo 'Failed to touch file...';
}
else
{
echo 'Touch returned success...';
}
}
?>
Note: Note that time resolution may differ from one file system to another.
Note: The results of this function are cached. See clearstatcache() for more details.
As of PHP 5.0.0, this function can also be used with some URL wrappers. Refer to List of Supported Protocols/Wrappers for a listing of which wrappers support stat() family of functionality.