(PHP 4, PHP 5)
stat — 给出文件的信息
$filename
   )
   获取由 filename 指定的文件的统计信息。如果
   filename
   是符号连接,则统计信息是关于被连接文件本身的,而不是符号连接。 lstat()
   和  stat() 相同,只除了它会返回符号连接的状态。
  
   如果出错, stat() 返回 FALSE,并且发出一条警告。
  
返回一个数组包含有文件的统计信息,该数组具有以下列出的单元,数组下标从零开始。除了数字索引之外自 PHP 4.0.6 起还可以通过关联索引来访问。
| 数字下标 | 关联键名(自 PHP 4.0.6) | 说明 | 
|---|---|---|
| 0 | dev | device number - 设备名 | 
| 1 | ino | inode number - inode 号码 | 
| 2 | mode | inode protection mode - inode 保护模式 | 
| 3 | nlink | number of links - 被连接数目 | 
| 4 | uid | userid of owner - 所有者的用户 id | 
| 5 | gid | groupid of owner- 所有者的组 id | 
| 6 | rdev | device type, if inode device * - 设备类型,如果是 inode 设备的话 | 
| 7 | size | size in bytes - 文件大小的字节数 | 
| 8 | atime | time of last access (unix timestamp) - 上次访问时间(Unix 时间戳) | 
| 9 | mtime | time of last modification (unix timestamp) - 上次修改时间(Unix 时间戳) | 
| 10 | ctime | time of last change (unix timestamp) - 上次改变时间(Unix 时间戳) | 
| 11 | blksize | blocksize of filesystem IO * - 文件系统 IO 的块大小 | 
| 12 | blocks | number of blocks allocated - 所占据块的数目 | 
Note: 此函数的结果会被缓存。参见 clearstatcache() 以获得更多细节。
自 PHP 5.0.0 起, 此函数也用于某些 URL 包装器。请参见 Supported Protocols and Wrappers以获得支持 stat() 系列函数功能的包装器列表。
参见 lstat(), fstat(), filemtime() 和 filegroup()。
filename
     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 512-byte blocks allocated ** | 
** Only valid on systems supporting the st_blksize type - other systems (e.g. Windows) return -1.
   In case of error,  stat() returns FALSE.
  
Note: 因为 PHP 的整数类型是有符号整型而且很多平台使用32位整型, 对2GB以上的文件,一些文件系统函数可能返回无法预期的结果 。
   Upon failure, an E_WARNING is emitted.
  
| 版本 | 说明 | 
|---|---|
| 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 time, 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 
     * after 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: 此函数的结果会被缓存。参见 clearstatcache() 以获得更多细节。
自 PHP 5.0.0 起, 此函数也用于某些 URL 包装器。请参见 Supported Protocols and Wrappers以获得支持 stat() 系列函数功能的包装器列表。