如何根据上次修改日期回显目录中的所有文件 php
How to echo all the files in a directory based the date it was last modified php
我正在使用下面的代码将目录中的所有文件回显到页面上。回显的文件顺序是随机的,即
文件 3
文件 1
文件 2
而不是
文件 1
文件 2
文件 3
如何才能使回显的文件基于文件的创建或上传时间。最新的文件将出现在列表的顶部,最旧的文件将出现在底部
if ($handle = opendir('.')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != ".." && !in_array($entry, $blacklist)) {
echo "<p>$entry\n</p>";
}
}
closedir($handle);
}
这应该适合你:
(这里我从 glob()
, then i sort it with a user defined function usort()
and compare the times of the last modification with filemtime()
的目录中获取所有文件)
<?php
function cmp($a, $b) {
if (filemtime($a) == filemtime($b))
return 0;
return (filemtime($a) < filemtime($b)) ? -1 : 1;
}
$files = glob("*.*");
usort($files, "cmp");
foreach($files as $file)
echo $file . "<br />";
?>
看看 PHP4+ 的 filemtime。您将要在这里做两件事:
- 在数组中获取文件的文件时间
- 根据文件时间比较对它们进行排序
下次尝试在 Whosebug 上搜索与您类似的问题:)
$files = array();
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$files[filemtime($file)] = $file;
}
}
closedir($handle);
// sort ksort($files); // find the last modification $reallyLastModified = end($files);
foreach($files as $file) { $lastModified = date('F d Y, H:i:s',filemtime($file)); if(strlen($file)-strpos($file,".swf")== 4){ if ($file == $reallyLastModified) { // do stuff for the real last modified file } echo "$file$lastModified"; } }
未测试
SOURCE
我正在使用下面的代码将目录中的所有文件回显到页面上。回显的文件顺序是随机的,即
文件 3
文件 1
文件 2
而不是
文件 1
文件 2
文件 3
如何才能使回显的文件基于文件的创建或上传时间。最新的文件将出现在列表的顶部,最旧的文件将出现在底部
if ($handle = opendir('.')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != ".." && !in_array($entry, $blacklist)) {
echo "<p>$entry\n</p>";
}
}
closedir($handle);
}
这应该适合你:
(这里我从 glob()
, then i sort it with a user defined function usort()
and compare the times of the last modification with filemtime()
的目录中获取所有文件)
<?php
function cmp($a, $b) {
if (filemtime($a) == filemtime($b))
return 0;
return (filemtime($a) < filemtime($b)) ? -1 : 1;
}
$files = glob("*.*");
usort($files, "cmp");
foreach($files as $file)
echo $file . "<br />";
?>
看看 PHP4+ 的 filemtime。您将要在这里做两件事:
- 在数组中获取文件的文件时间
- 根据文件时间比较对它们进行排序
下次尝试在 Whosebug 上搜索与您类似的问题:)
$files = array();
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$files[filemtime($file)] = $file;
}
}
closedir($handle);
// sort ksort($files); // find the last modification $reallyLastModified = end($files);
foreach($files as $file) { $lastModified = date('F d Y, H:i:s',filemtime($file)); if(strlen($file)-strpos($file,".swf")== 4){ if ($file == $reallyLastModified) { // do stuff for the real last modified file } echo "$file$lastModified"; } }
未测试
SOURCE