PHP 文件系统 stat() 函数



PHP 文件系统stat()函数用于返回有关文件的信息。此函数可以收集名为 filename 的文件统计信息。如果 filename 是符号链接,则统计信息来自文件本身,而不是符号链接。lstat() 函数类似于 stat() 函数,但它可以基于符号链接的状态。

语法

以下是 PHP 文件系统stat()函数的语法:

array stat ( string $filename )

参数

以下是stat()函数唯一必需的参数:

序号 参数及描述
1

$filename(必需)

这是要获取其信息的的文件。

返回值

stat()函数在成功时返回一个包含文件详细信息的数组,如果出错则返回 FALSE。

数组元素

以下是数组的主要元素:

索引 字段 描述
[0] dev 设备号
[1] ino inode 号
[2] mode 文件模式(保护)
[3] nlink 链接数
[4] uid 所有者的用户 ID
[5] gid 所有者的组 ID
[6] rdev 设备类型(如果为 inode 设备)
[7] size 文件大小(字节)
[8] atime 上次访问时间
[9] mtime 上次修改时间
[10] ctime 上次更改时间
[11] blksize 文件系统 I/O 的块大小
[12] blocks 已分配的 512B 块数

PHP 版本

stat()函数最初作为核心 PHP 4 的一部分引入,并能很好地与 PHP 5、PHP 7 和 PHP 8 兼容。

示例

这是一个基本示例,演示如何使用 PHP 文件系统stat()函数获取文件信息。

<?php
   // Get file stat 
   $stat = stat("/PhpProject/sample.txt");  

   // Print file access time, this is the same as calling fileatime()  
   echo "Acces time: " .$stat["atime"];    

   //Print file modification time, this is the same as calling filemtime()
   echo "\nModification time: " .$stat["mtime"];  
?>

输出

以下是以下代码的结果:

Acces time: 1590217956
Modification time: 1591617832
Device number: 1245376677

示例

这是一个另一个示例,演示如何使用stat()函数处理使用此函数时的错误。

<?php
   $stat = stat("/PhpProject/sample.txt");
   
   if(!$stat) {
      echo "stat() call failed...";
   } else {
      $atime = $stat["atime"] + 604800;
   }
   if(!touch("/PhpProject1/sampl2.txt", time(), $atime)) {
      echo "failed to touch file...";
   } else {
      echo "touch() returned success...";
   }
?> 

输出

这将产生以下结果:

touch() returned success...

示例

这是一个示例,用于检查提供文件是否存在,如果存在,则使用stat()函数获取信息。

<?php
   $filename = "/PhpProjects/myfile.txt";

   if (file_exists($filename)) {
      $fileinfo = stat($filename);
      echo "File exists!\n";
      echo "File size: " . $fileinfo['size'] . " bytes\n";
      echo "Last modified: " . date('Y-m-d H:i:s', $fileinfo['mtime']) . "\n";
   } else {
      echo "File does not exist.
"; } ?>

输出

这将生成以下输出:

File exists!
File size: 74 bytes
Last modified: 2024-06-25 09:08:39

示例

这是一个示例,使用stat()函数获取文件信息,例如文件大小、上次修改日期和权限。

<?php
   $filename = "/PhpProjects/myfile.txt";

   // Get file status
   $fileinfo = stat($filename);

   // Display file size in bytes
   echo "File size: " . $fileinfo['size'] . " bytes\n";

   // Display last modified timestamp
   echo "Last modified: " . date('Y-m-d H:i:s', $fileinfo['mtime']) . "\n";

   // Display file permissions
   echo "Permissions: " . decoct($fileinfo['mode'] & 0777) . "\n";
?> 

输出

这将导致以下输出:

File size: 74 bytes
Last modified: 2024-06-25 09:08:39
Permissions: 644

总结

stat()方法是一个内置函数,用于以数组的形式获取有关给定文件的信息。它对于获取文件的不同属性非常有用,例如权限、大小、修改时间和类型。

php_function_reference.htm
广告