【发布时间】:2012-03-30 15:46:42
【问题描述】:
我正在遍历一个目录并使用 glob() 获取所有文件。有没有办法按创建日期/时间对结果数组的元素进行排序?目前我正在使用 filemtime(),但假设它们从未被编辑过。
干杯!
【问题讨论】:
-
它取决于操作系统,但在基于unix的系统上,创建时间不可用,只有修改时间。
我正在遍历一个目录并使用 glob() 获取所有文件。有没有办法按创建日期/时间对结果数组的元素进行排序?目前我正在使用 filemtime(),但假设它们从未被编辑过。
干杯!
【问题讨论】:
您可以尝试以下方法:
$array = glob("*.txt");
usort($array, function($a, $b) {
$aTime = filectime($a);
$bTime = filectime($b);
if ($aTime < $bTime) {
return -1;
} elseif ($aTime > $bTime) {
return 1;
} else {
return 0;
}
});
传递一个匿名函数以允许用户定义的数组排序。这次函数根据glob返回的文件的创建时间(windows)/inode更改时间(linux)进行检查和排序。
希望这会有所帮助。
是
【讨论】:
http://www.php.net/manual/en/function.filectime.php
可能更接近您的需要。编辑时它仍然会更新,但内容不会更新。只有元数据。
【讨论】:
许多文件系统不保留有关文件创建日期的任何信息。在这些上你可以尝试使用 filectime。
【讨论】: