我个人知道有限的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)
任何想法,如果这是权限的事情?服务器的事?代码的东西?
答案 0 :(得分:2)
您可能会看到两种效果之一:
在许多网络服务器上,承载网络数据的文件系统已挂载noatime
,以节省每次请求更新atime的昂贵IO。
PHP的fstat缓存往往有自己的生命:使用clearstatcache()
来解决这个问题。