我个人知道有限的PHP,但是我有一个由另一个提供的脚本,我已经调整了一点
<?php
function getFiles($dir)
{
$arr=scandir($dir);
$res=array();
foreach ($arr as $item)
{
if ($item=='..' || $item=='.'){continue;}
$path=$dir.'/'.$item;
if (is_dir($path))
{
$res=array_merge($res,getFiles($path));
}
else
{
$res[$path]=fileatime($path);
}
}
return $res;
}
$files=getFiles(dirname('Manuals'));
arsort($files);
$files=array_slice(array_keys($files),0,11);
foreach ($files as $file)
{
$URL=$file;
$file = trim(substr($file, strrpos($file, '/') + 1));
$file = str_replace(".pdf", "", $file);
echo '<!--<li style="margin-left: -25px; white-space: pre;">--><a href="'.$URL.'" title="'.$file.'">'.$file.'</a><br />';
}
?>
在"$res[$path]=FileaTime($path);"中将上一个 FilemTime 更改为 Fileatime。
从我收集的信息来看,这应该显示上次访问文件的时间,但它的功能似乎与Filemtime或Filectime没有什么不同。也许服务器没有更新访问时间?(所有文件均为 HTML、PHP 和 PDF)
知道这是否是权限的事情吗?服务器的事情?代码的事情?
看到以下两种效果之一:
在许多 Web 服务器上,承载 Web 数据的文件系统都挂载
noatime
,以节省为每个请求及时更新的昂贵 IO。PHP 的 fstat 缓存往往有自己的生命:使用
clearstatcache()
来克服这个问题。