PHP fstat()
函数 用来返回关于一个打开的文件的信息。
该函数不能单独使用,因为要读取文件的信息首先得先打开文件 fopen(),读取完成最后得关闭文件 fclose()。
语法
fstat(file, length)
参数
参数 说明 必须/可选 file 指定要读取的文件,它是一个文件指针变量 必须
返回值
返回打开文件信息的关联数组,其包含以下信息。
数字下标 | 键名 | 说明 |
---|---|---|
0 | dev | 设备名 |
1 | ino | 号码 |
2 | mode | inode 保护模式 |
3 | nlink | 被连接数目 |
4 | uid | 所有者的用户 id |
5 | gid | 所有者的组 id |
6 | rdev | 设备类型,如果是 inode 设备的话 |
7 | size | 文件大小的字节数 |
8 | atime | 上次访问时间(Unix 时间戳) |
9 | mtime | 上次修改时间(Unix 时间戳) |
10 | ctime | 上次改变时间(Unix 时间戳) |
11 | blksize | 文件系统 IO 的块大小 |
12 | blocks | 所占据块的数目 |
注意点
该函数与 stat() 函数相似,不同的是,它是作用于已打开的文件指针而不是文件名。
例子
现介绍一个简单的例子了解该函数的使用方法。
这里结合 fopen(),fclose() 函数介绍该函数的使用:
<?php
//建议使用try catch 的方式读取文件
$test = fopen("test.txt", 'r+') or die("文件不存在!");
$arr = fstat($test);//获取文件信息
var_dump($arr);
fclose($test);
?>
输出:
array(26) {
[0]=>
int(64769)
[1]=>
int(1840260)
[2]=>
int(33279)
[3]=>
int(1)
[4]=>
int(0)
[5]=>
int(0)
[6]=>
int(0)
[7]=>
int(74)
[8]=>
int(1683120994)
[9]=>
int(1682648010)
[10]=>
int(1682661230)
[11]=>
int(4096)
[12]=>
int(8)
["dev"]=>
int(64769)
["ino"]=>
int(1840260)
["mode"]=>
int(33279)
["nlink"]=>
int(1)
["uid"]=>
int(0)
["gid"]=>
int(0)
["rdev"]=>
int(0)
["size"]=>
int(74)
["atime"]=>
int(1683120994)
["mtime"]=>
int(1682648010)
["ctime"]=>
int(1682661230)
["blksize"]=>
int(4096)
["blocks"]=>
int(8)
}
[0]=>
int(64769)
[1]=>
int(1840260)
[2]=>
int(33279)
[3]=>
int(1)
[4]=>
int(0)
[5]=>
int(0)
[6]=>
int(0)
[7]=>
int(74)
[8]=>
int(1683120994)
[9]=>
int(1682648010)
[10]=>
int(1682661230)
[11]=>
int(4096)
[12]=>
int(8)
["dev"]=>
int(64769)
["ino"]=>
int(1840260)
["mode"]=>
int(33279)
["nlink"]=>
int(1)
["uid"]=>
int(0)
["gid"]=>
int(0)
["rdev"]=>
int(0)
["size"]=>
int(74)
["atime"]=>
int(1683120994)
["mtime"]=>
int(1682648010)
["ctime"]=>
int(1682661230)
["blksize"]=>
int(4096)
["blocks"]=>
int(8)
}