PHP fileatime - >总是在早上1点钟

时间:2015-02-03 20:26:26

标签: php

我编写了一个例程来删除文件夹中过去x天未使用过的所有文件。

我正在使用函数fileatime() [或更准确地说是DirectoryIterator函数getATime()]

调试时,我注意到所有文件的最后访问时间是今天早上1点。

这是服务器自动备份的时间。

所以问题是...... 如何找出用户上次访问文件的时间,而不是自动备份。

任何帮助都将不胜感激。

大卫

1 个答案:

答案 0 :(得分:0)

这是我提出的解决方案。 每当用户访问文件时,我都会将文件复制到新名称并删除旧版本。这设置了一个新的修改时间。

独立地,在一个单独的例程中,我查看文件夹中的所有文件,并删除自X天以来未被访问(修改)的任何文件夹。

function DeleteUnusedFiles($FolderName,$NumberOfDays) 
{
$fileSPLObjects =  new RecursiveIteratorIterator( new RecursiveDirectoryIterator($FolderName),RecursiveIteratorIterator::LEAVES_ONLY  );
foreach( $fileSPLObjects as $fullFileName => $fileSPLObject ) 
  {
  $TheFileName=$fileSPLObject->getFilename();
  $DaysOld=(int)( time()-$fileSPLObject->getMTime())/(3600*24) ); 
  if( $DaysOld  >= $NumberOfDays ) unlink( $fileSPLObject->getRealPath() );
  }
}