PHP 显示文件夹中的最新图像


PHP Display most recent images from folders

我想显示来自 6 个文件夹的最新图像。图像命名如下:20150126.jpg、20150127.jpg它可以工作,但显示来自第一个目录的所有图像,而不是来自第二个目录等的图像。如何混合它并显示最新的图像?

$directory = "*/";
$pictures = glob("" . $directory . "*.jpg");
$no_pictures = count($pictures)-1;  
$limit = $no_pictures-8;           
for( $i = $no_pictures; $i >= $limit; $i--){  
echo "<img width='300px' src='"".$pictures[$i]."'" />'n"; 
}  

您可以通过对$pictures数组进行酸痛来解决此问题。如果您希望最新的位于顶部,则需要反向排序或保留输出。

sort():http://php.net/manual/en/function.sort.php

编辑:根据您的输出,我建议使用以下算法(尽管有多种方法可以做到这一点):

  1. 仅从父目录获取目录列表。您可以将 glob() 与 GLOB_ONLYDIR 选项一起使用。
  2. 遍历从 1 获取的目录,并获取每个目录的文件名(无需其他路径信息)。首先将文件合并到具有文件名的新数组中。它将具有某种格式化的字符串(您可以使用JSON或仅使用一些简单的分隔符,例如冒号)。例如,新数组将包含以下条目:20150126.jpg:ciazowe、20150127.jpg:event等。
  3. 对此数组进行排序。
  4. 像您一样"向后"输出,仅使用正确的路径信息。

你应该看看建议的排序,还有$arr = array_slice($arr, 0, 6); 获得所需的 6.