我如何对图像进行排序 - 最新的图像

时间:2013-10-14 16:13:38

标签: php image

我在YT上发现了一个用于显示目录图像的php代码。 一切都很完美,但我需要在顶部显示最新的照片。 任何人都可以帮助我吗?

<?php
    $dir = 'foto';
    $file_display = array('jpg', 'jpeg');

    if (file_exists($dir) == false) {
        echo 'Gallery \'', $dir, '\' not found!';
    } else {
        $dir_contents = scandir($dir);

        foreach ($dir_contents as $file) {
            $file_type = strtolower (end(explode('.', $file)));

            if ($file !== '.' && $file !== '..' && in_array($file_type, $file_display) == true) {
                echo '<div id="', $file,  '"><img src="', $dir, '/', $file, '" alt="', $file, '" /></div>';
            }
        }
    }
?>

2 个答案:

答案 0 :(得分:2)

少代码:

array_multisort((
    array_map(
        'filemtime', ($files = glob(
            "$dir/*.{jpg,jpeg}", GLOB_BRACE)))), SORT_DESC, $files);
  • 特定文件的Glob并存储在$files
  • 获取每个文件的修改时间,并按时间排序$files
foreach上的{p> $files并显示。

答案 1 :(得分:0)

我认为您需要按日期对图像进行排序。有人在此处编写了scandir()函数的另一种变体:https://stackoverflow.com/a/11923516/1644017

您可以在代码中获取该功能并将$dir_contents = scandir($dir);更改为:$dir_contents = scan_dir($dir);