按创建日期列出目录中的所有文件
以下函数将路径作为参数,并生成按其时间戳排序的文件数组。数组值是文件名,而数组键是时间戳。为了防止在使用随机数创建阵列键时,具有相同时间戳的两个文件相互覆盖。如果同时创建两个文件,则最少发生的是每次创建数组时它们都将交换位置,因为随机数会有所不同。
function listDirectoryByDate($path) { $dir = opendir($path); $list = array(); while ($file = readdir($dir)) { if ($file != '.' && $file != '..' && !is_dir($file)) { $ctime = filectime($path.$file) . rand(1000,9999); $list[$ctime] = $file; } } closedir($dir); krsort($list); return $list; }
要使用该功能打印出当前目录中的所有文件,请使用以下代码。
echo'
'.print_r(listDirectoryByDate('./'),true).'';
请注意,filectime()在某些Win32系统上,该函数可能会通过返回文件创建时间来给出不正确的值。这就是我们想要的,但是如果您发现此功能有问题,请替换filectime()为filemtime()。