PHP 文件系统 touch() 函数



PHP 文件系统touch()函数用于设置给定文件的访问和修改时间,成功时返回true,失败时返回false。

请注意,无论参数数量如何,访问时间总是会被修改。

语法

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

bool touch ( string $filename [, int $mtime = time() [, int $atime ]] )

参数

以下是touch()函数的必需和可选参数:

序号 参数及说明
1

$filename(必填)

这是要修改的文件名。

2

$mtime(可选)

这是修改时间。如果未指定此时间,则使用当前系统时间。

3

$atime(可选)

如果存在,则将指定文件名的访问时间设置为 atime。否则,将其设置为 time 参数指定的值。如果两者都不可用,则使用当前系统时间。

返回值

touch()函数成功时返回 TRUE,失败时返回 FALSE。

变更日志

在 PHP 8.0.0 版本中,mtime 和 atime 现在可以为空。

PHP 版本

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

示例

这是一个基本示例,演示如何使用 PHP 文件系统touch()函数设置提供的文件 sample.txt 的访问和修改时间。

<?php
   $filename = "/PhpProject/sample.txt";
   if(touch($filename)) {
      echo $filename . " modification time has been changed to present time";
   } else {
      echo "Sorry, could not change modification time of " . $filename;
   }
?>

输出

以下是以下代码的结果:

/PhpProject/sample.txt modification time has been changed to present time

示例

另一个示例演示如何使用touch()函数将文件的修改时间修改为当前时间前 1 小时。

<?php
   $time = time() - 3600;
   if (!touch("/PhpProject/sample.txt", $time)) {
      echo "oops, something went wrong...";
   } else {
      echo "Touched file with success";
   }
?> 

输出

这将产生以下结果:

Touched file with success

示例

还有一个示例演示如何使用touch()函数设置给定文件的特定访问时间和修改时间。

<?php
   $filename = '/PhpProjects/myfile.txt';
   $timestamp = strtotime('2024-01-01 12:00:00');

   // Set a specific access/modification time for the file
   if (touch($filename, $timestamp)) {
      echo "File '$filename' access/modification time set to " . date('Y-m-d H:i:s', $timestamp);
   } else {
      echo "Failed to set access/modification time for file '$filename'.";
   }
?> 

输出

这将生成以下输出:

File '/PhpProjects/myfile.txt' access/modification time set to 2024-01-01 12:00:00

示例

现在假设给定的文件不存在,那么touch()函数如何处理这种情况呢?让我们看看。

<?php
   $filename = '/PHP/PhpProjects/abc.txt';

   // Try to change the access/modification time of a file that is not present
   if (touch($filename)) {
      echo "File '$filename' access/modification time updated.";
   } else {
      echo "Failed to update file '$filename': \n" . error_get_last()['message'];
   }
?> 

输出

这将导致以下输出:

Failed to update file '/PHP/PhpProjects/abc.txt': touch(): 
Unable to create file /PHP/PhpProjects/abc.txt because No such file or directory

总结

touch()方法是一个内置函数,用于设置给定文件的访问或修改时间。如果文件不存在,此函数会先创建文件。

php_function_reference.htm
广告