lstat()

1. 定义

该函数与stat()函数类似,但该函数除了可以返回文件的统计信息以外,还可以返回符号链接的状态信息。 成功时返回文件或符号链接的统计信息数组(数字索引与关联索引),失败则返回FALSE。

注:该函数结果会被缓存,若需要清除缓存,请使用clearstatcache()函数。

2. 语法

lstat ( string $filepath ) : array

3. 参数说明

参数 可选性 数据类型 描述
$filepath 必需 字符串 要检查的文件或符号链接的路径

4. 示例

<?php

// lstat()
// 可以返回文件的统计信息以外,还可以返回符号链接的状态信息

// 检查一个文件的统计信息
$filepath = __FILE__;
$arr = lstat($filepath);
var_dump($arr);
/* 输出:
array(26) {
  [0]=>
  int(4)
  [1]=>
  int(0)
  [2]=>
  int(33206)
  [3]=>
  int(1)
  [4]=>
  int(0)
  [5]=>
  int(0)
  [6]=>
  int(4)
  [7]=>
  int(716)
  [8]=>
  int(1577692820)
  [9]=>
  int(1577692817)
  [10]=>
  int(1577246377)
  [11]=>
  int(-1)
  [12]=>
  int(-1)
  ["dev"]=>
  int(4)
  ["ino"]=>
  int(0)
  ["mode"]=>
  int(33206)
  ["nlink"]=>
  int(1)
  ["uid"]=>
  int(0)
  ["gid"]=>
  int(0)
  ["rdev"]=>
  int(4)
  ["size"]=>
  int(716)
  ["atime"]=>
  int(1577692820)
  ["mtime"]=>
  int(1577692817)
  ["ctime"]=>
  int(1577246377)
  ["blksize"]=>
  int(-1)
  ["blocks"]=>
  int(-1)
}
*/

// 检查一个目录的统计信息
$filepath = __DIR__;
$arr = lstat($filepath);
var_dump($arr);
/* 输出:
array(26) {
  [0]=>
  int(4)
  [1]=>
  int(0)
  [2]=>
  int(16895)
  [3]=>
  int(1)
  [4]=>
  int(0)
  [5]=>
  int(0)
  [6]=>
  int(4)
  [7]=>
  int(24576)
  [8]=>
  int(1577692820)
  [9]=>
  int(1577692601)
  [10]=>
  int(1573201200)
  [11]=>
  int(-1)
  [12]=>
  int(-1)
  ["dev"]=>
  int(4)
  ["ino"]=>
  int(0)
  ["mode"]=>
  int(16895)
  ["nlink"]=>
  int(1)
  ["uid"]=>
  int(0)
  ["gid"]=>
  int(0)
  ["rdev"]=>
  int(4)
  ["size"]=>
  int(24576)
  ["atime"]=>
  int(1577692820)
  ["mtime"]=>
  int(1577692601)
  ["ctime"]=>
  int(1573201200)
  ["blksize"]=>
  int(-1)
  ["blocks"]=>
  int(-1)
}
*/

// 检查一个不存在文件的统计信息
$filepath = __DIR__.'/none.txt';
$arr = lstat($filepath);
var_dump($arr);
/* 输出:
Warning: lstat(): Lstat failed
*/

// 检查一个符号链接(文件)的状态信息
if(!file_exists(__DIR__.'/test')) {
  // 创建一个符号链接
  $sym_link = 'test';
  symlink(__FILE__, $sym_link);
}
$filepath = __DIR__.'/test';
$arr = lstat($filepath);
var_dump($arr);
/* 
array(26) {
  [0]=>
  int(4)
  [1]=>
  int(0)
  [2]=>
  int(33206)
  [3]=>
  int(1)
  [4]=>
  int(0)
  [5]=>
  int(0)
  [6]=>
  int(4)
  [7]=>
  int(716)
  [8]=>
  int(1577692820)
  [9]=>
  int(1577692817)
  [10]=>
  int(1577246377)
  [11]=>
  int(-1)
  [12]=>
  int(-1)
  ["dev"]=>
  int(4)
  ["ino"]=>
  int(0)
  ["mode"]=>
  int(33206)
  ["nlink"]=>
  int(1)
  ["uid"]=>
  int(0)
  ["gid"]=>
  int(0)
  ["rdev"]=>
  int(4)
  ["size"]=>
  int(716)
  ["atime"]=>
  int(1577692820)
  ["mtime"]=>
  int(1577692817)
  ["ctime"]=>
  int(1577246377)
  ["blksize"]=>
  int(-1)
  ["blocks"]=>
  int(-1)
}
*/

clearstatcache();

5. 延展阅读

  • stat():返回一个文件的所有统计信息