这是一个显示文件夹中图像的脚本。但有没有办法可以先显示最新图像?而不是相反。
$images = glob('*.{gif,png,jpg,jpeg}', GLOB_BRACE); // formats to look for
$num_of_files = 2; // number of images to display
foreach($images as $image)
{
$num_of_files--;
if($num_of_files > -1) // this made me laugh when I wrote it
echo "<b>".$image."</b><br>Created on ".date('D, d M y H:i:s', filemtime($image)) ."<br><img src="."'".$image."' style='width: 95%'"."><br><br>" ; // display images
else
break;
}
答案 0 :(得分:3)
您需要将图像放入数组中,然后按上次修改后排序。
这样的事情:
$imagesToSort = glob('*.{gif,png,jpg,jpeg}');
usort($imagesToSort, function($a, $b) {
return filemtime($a) < filemtime($b);
});
答案 1 :(得分:0)
glob()
并不关心哪个文件是第一个还是最后一个。它所关心的只是文件名。因此,您需要获取所有图像,然后您可以尝试使用反向字母顺序获取这些图像:
$images = glob('*.{gif,png,jpg,jpeg}', GLOB_BRACE);
$count = count($images) - 1;
$toShow = 2; // how many images you want to show
for ($i = 0; $i < $toShow; $i++, $count--) {
echo "<b>".$images[$count]."</b><br>Created on ".date('D, d M y H:i:s', filemtime($images[$count])) ."<br><img src="."'".$images[$count]."' style='width: 95%'"."><br><br>" ;
}
但是,如果您希望按时间顺序,则需要foreach()
完成所有这些操作并按filemtime
对其进行排序。 This answer shows how to do it with usort()
's callback