-1

我在 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>';
            }
        }
    }
?>
4

2 回答 2

2

更少的代码:

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

foreach开启$files并显示。

于 2013-10-14T16:43:34.610 回答
0

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

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

于 2013-10-14T16:23:37.487 回答