fstat()

1. 定义

返回通过fopen()函数打开的文件句柄的本地文件的信息。 返回一个文件信息数组。

文件信息包括以下几种:

  • dev:设备名
  • ino:inode 号码
  • mode:inode 保护模式
  • nlink:被连接数目
  • uid:所有者的用户 id
  • gid:所有者的组 id
  • rdev:设备类型,如果是 inode 设备的话
  • size:文件大小的字节数
  • atime:上次访问时间(Unix 时间戳)
  • mtime:上次修改时间(Unix 时间戳)
  • ctime:上次改变时间(Unix 时间戳)
  • blksize:文件系统 IO 的块大小
  • blocks:所占据块的数目

其中在Windows系统中,ino号始终为0,uidgid都需要开启POSIX扩展才能通过相关函数返回具体信息。

2. 语法

fstat ( resource $handle ) : array

3. 参数说明

参数 可选性 数据类型 描述
$handle 必需 资源类型 文件句柄,通过fopen()函数打开的文件资源

4. 示例

<?php

// fstat()
// 返回通过`fopen()`函数打开的文件句柄的**本地文件**的信息

$handle = fopen(__FILE__, 'r');
$arr = fstat($handle);
var_dump($arr);
/* 输出:
array(26) {
  [0]=>
  int(0)
  [1]=>
  int(0)
  [2]=>
  int(33206)
  [3]=>
  int(1)
  [4]=>
  int(0)
  [5]=>
  int(0)
  [6]=>
  int(0)
  [7]=>
  int(375)
  [8]=>
  int(1577688465)
  [9]=>
  int(1577688464)
  [10]=>
  int(1577246377)
  [11]=>
  int(-1)
  [12]=>
  int(-1)
  ["dev"]=>
  int(0)
  ["ino"]=>
  int(0)
  ["mode"]=>
  int(33206)
  ["nlink"]=>
  int(1)
  ["uid"]=>
  int(0)
  ["gid"]=>
  int(0)
  ["rdev"]=>
  int(0)
  ["size"]=>
  int(375)
  ["atime"]=>
  int(1577688465)
  ["mtime"]=>
  int(1577688464)
  ["ctime"]=>
  int(1577246377)
  ["blksize"]=>
  int(-1)
  ["blocks"]=>
  int(-1)
}
*/
fclose($handle);

// 如果作用于远程文件
$handle = fopen('https://www.jisuapi.com/', 'r');
$arr = fstat($handle);
var_dump($arr);// 输出:bool(false)
fclose($handle);