我想创建一个新闻页面,其中包含在以下目录结构中创建的最新3个文件的片段:
所以我想说我有以下文件:
/news.php /2010/the-latest-article.php /2009/some-long-article-name.php /2009/another-long-article-name.php /2009/too-old-article-name.php /2009/another-old-article-name.php
我只想将前3个文件包含在news.php输出中。
答案 0 :(得分:3)
答案 1 :(得分:3)
如果您可以在文件名前加上日期和时间(YYYY-MM-DD HH:mm:ss),那么您可以按字母顺序排序并取最后三个。否则,维克多有一个很好的答案。
答案 2 :(得分:1)
您可以使用opendir http://php.net/manual/en/function.opendir.php和readdir http://www.php.net/manual/en/function.readdir.php
打开文件目录然后你可以使用php函数filemtime http://php.net/manual/en/function.filemtime.php,它返回传递给它的文件名的最后修改日期。
所以你要做的就是查看目录中的所有文件,并通过返回filemtime来命令它们(它返回一个UNIX时间戳)。一旦你订购它们(使用你喜欢的任何排序算法),只需返回前3个结果。
答案 3 :(得分:1)
来自php.net:
foreach (glob("../downloads/*") as $path) { //configure path
$docs[filectime($path)] = $path;
} ksort($docs); // sort by key (timestamp)
foreach ($docs as $timestamp => $path) {
print date("d. M. Y: ", $timestamp);
print '<a href="'. $path .'">'. basename($path) .'</a><br />';
}
另外,如果您使用的是windoze,filemtime可能会提供更好的结果。