如何显示文件夹中的所有图像和视频以及按日期排序的子文件夹(顶部显示新内容)?

时间:2019-04-06 22:17:46

标签: php image date

使用PHP,我试图显示文件夹和子文件夹中的所有图像,并按日期排序(顶部显示较新)。

来自script@slashingweapon非常有效。但是我只是不能让它显示按日期排序的图像。

我正在尝试“ filemtime”,但无法使其正常工作(我不是程序员,只是一个小家伙)。

如果有人可以提供一些建议,我会很高兴。

谢谢!

#ifndef __SAW_HPP__
#define __SAW_HPP__

#include <iostream>
#include <sstream>
#include <string>
#include <vector>

// #define DEBUG

using std::vector;
using std::string;
using std::ostream;

namespace saw
{

    struct coord
    {
        int x;
        int y;
        int z;

        string toString(int shift = 0) const;
    };

    class SAWalk
    {
    public:
        SAWalk(vector<coord> path);
        double displacement() { return displ; }
    protected:
        vector<coord> path;
        double displ;
    };

    class SAWalkBuilder
    {
    public:
        SAWalkBuilder() {}

        SAWalk build(int num_steps) const;

        static const int SIZE_M = 50;
    };

    ostream& operator<<(ostream& os, const coord& c);

}

#endif

1 个答案:

答案 0 :(得分:1)

要按修改时间对值进行排序,需要将它们读入数组,然后在显示它们之前对其进行排序。为了处理可能具有相同mtime的文件,我们使用多维数组,然后使用array_multisort使用mtime列对多维数组进行排序。我们将所需的输出添加到数组中,以便您可以直接将这些值附加到ehco以便更轻松地输出:

$rdi = new RecursiveDirectoryIterator("uploads/prevImgs/");
$it = new RecursiveIteratorIterator($rdi);
$files = array();
foreach($it as $oneThing) {
    if (is_file($oneThing)) {
        $files[] = array('mtime' => filemtime($oneThing), 'image' => '<img src="'.$oneThing.'" /><br />');
    }
}
array_multisort(array_column($files, 'mtime'), $files);
echo implode(array_column($files, 'image'));