PHP 文件系统 fileatime() 函数



PHP 文件系统fileatime()函数用于返回指定文件的上次访问时间。此函数的结果已被缓存。我们可以使用clearstatcache()函数清除缓存。

每当读取文件时,文件的访问时间都会发生变化。某些Unix系统会关闭访问时间更新,因为更新它们会降低性能,尤其是在频繁访问许多文件时。关闭这些更新可以提高性能。

语法

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

int fileatime ( string $filename )

参数

下面提到了使用fileatime()函数所需的參數:

序号 参数及说明
1

filename(必需)

这是文件路径。

返回值

返回文件上次访问的时间,如果失败则返回 FALSE。时间将以 Unix 时间戳的形式给出。

PHP 版本

fileatime()函数最初作为 PHP 4 的核心部分引入,并与 PHP 5、PHP 7、PHP 8 良好兼容。

示例

这段PHP代码使用PHP文件系统fileatime()函数检查并显示文件的上次访问时间。以下是此示例的简单演示:

<?php
   echo fileatime("/PhpProject/sample.txt");
   echo "<br>";
   echo "Last access: ".date("F d Y H:i:s.",fileatime("/PhpProject/sample.txt"));
?>

输出

这将生成以下结果:

1590217956
Last access: May 23 2020 09:12:36.

示例

这段PHP代码检查文件是否存在,如果存在,则使用fileatime()函数显示其上次访问的时间。以下是此示例的简单演示:

<?php
   $filename = "/PhpProject/sample.txt";
   if(file_exists($filename)) {
      echo "$filename was last accessed at: " . date("F d Y H:i:s.", fileatime($filename));
   }
?>

输出

这将产生以下结果:

/PhpProject/sample.txt was last accessed at: May 23 2020 09:12:36.

示例

此PHP示例向我们展示了如何检查数组中列出文件的上次访问时间。它循环遍历每个文件,检查它是否存在,如果存在则使用fileatime()函数打印上次访问时间。

<?php
   // Make an array of file paths
   $files = ["/PhpProject/sample.txt", "/PhpProject/myfile.txt", "/PhpProject/my.php"];

   // Loop over the array of files
   foreach ($files as $file) {
      if (file_exists($file)) {
         echo "$file was last accessed at: " . date("F d Y H:i:s.", fileatime($file)) . "
"; } else { echo "$file does not exist.<br>"; } } ?>

输出

这将产生以下结果:

/PhpProject/sample.txt was last accessed at: May 30 2024 12:44:57.
/PhpProject/myfile.txt was last accessed at: May 30 2024 12:21:33.
/PhpProject/my.php was last accessed at: May 29 2024 11:47:25.

示例

在下面的PHP代码中,我们将比较两个文件的访问时间,使用fileatime()函数并相应地打印消息。

<?php
   $file1 = "/PhpProject/sample.txt";
   $file2 = "/PhpProject/myfile.txt";

   if (file_exists($file1) && file_exists($file2)) {
      $time1 = fileatime($file1);
      $time2 = fileatime($file2);
      
      if ($time1 > $time2) {
         echo "$file1 was accessed recently than $file2.<br>";
      } elseif ($time1 < $time2) {
         echo "$file2 was accessed recently than $file1.<br>";
      } else {
         echo "$file1 and $file2 were accessed at the same time.<br>";
      }
   } else {
      echo "One or both files do not exist.<br>";
   }
?> 

输出

这将导致以下结果:

/PhpProject/sample.txt was accessed recently than /PhpProject/myfile.txt.

注意

fileatime()函数可用于存储文件的访问时间;但是,应注意在频繁的访问时间更新会影响性能的系统上存在性能问题。

总结

本章我们了解了fileatime()函数是什么,以及fileatime()的一些有用示例。

php_function_reference.htm
广告