Php 如何从目录中获取图像文件并按上次修改的顺序排序?

Php 如何从目录中获取图像文件并按上次修改的顺序排序?,php,filtering,glob,last-modified,image-file,Php,Filtering,Glob,Last Modified,Image File,我正在创建一个图像库,并希望我最近上传的图像在前面 这就是我目前拥有的: $files = glob("images/*.*"); for ($i=0; $i<count($files); $i++) { $image = $files[$i]; $supported_file = array('gif','jpg','jpeg','png'); $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION));

我正在创建一个图像库,并希望我最近上传的图像在前面

这就是我目前拥有的:

$files = glob("images/*.*");
for ($i=0; $i<count($files); $i++) {
    $image = $files[$i];
    $supported_file = array('gif','jpg','jpeg','png');

    $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION));
    if (in_array($ext, $supported_file)) {
        echo basename($image)."<br />"; // show only image name if you want to show full path then use this code // echo $image."<br />";
        echo '<img src="'.$image .'" alt="Random image" />'."<br /><br />";
    } else {
        continue;
    }
}
$files=glob(“images/*.*);
对于($i=0;$i
$files=glob(“*.{jpg,jpeg,png,gif,jpg,jpeg,png,gif}”,glob_括号);
$sorted_files=array();/*将修改时间作为值的新数组
和文件作为键目的是根据值按相反顺序对文件进行排序*/
foreach($files作为$file)
{
$sorted_files[$file]=filemtime($file);
}
arsort($sorted_文件);
foreach($image=>$mtime的已排序文件)
{           
echo basename($image)。“
”;//如果要显示完整路径,请使用此代码//echo$image。”
”; 回显“”。“

”; }
$files=glob(“*.{jpg,jpeg,png,gif,jpg,jpeg,png,gif}”,glob_括号);
$sorted_files=array();/*将修改时间作为值的新数组
和文件作为键目的是根据值按相反顺序对文件进行排序*/
foreach($files作为$file)
{
$sorted_files[$file]=filemtime($file);
}
arsort($sorted_文件);
foreach($image=>$mtime的已排序文件)
{           
echo basename($image)。“
”;//如果要显示完整路径,请使用此代码//echo$image。”
”; 回显“”。“

”; }
您将需要一个完全不同的解决方案,可能基于文件迭代器。我的建议是使用symfony finder组件,该组件已经内置了许多排序。请参阅,已经内置了两种适用的排序方法:sortByChangedTime()和sortByModifiedTime()用于创建一个元素数组,其中key是filename,value是一个重新格式化的时间戳,那么
rsort()
这对您有用吗?如果Lambda7没有给出一个完全精炼的答案,我会在下次有机会时给出。您的问题实际上是一个包含两部分的问题,涉及过滤
glob()
然后对结果进行排序。上有以前的答案,说明如何对文件进行排序:和。glob()过滤在这里:这里:您将需要一个完全不同的解决方案,可能基于文件迭代器。我的建议是使用symfony finder组件,它已经内置了许多排序。请参阅,已经内置了两种适用的排序方法:sortByChangedTime()和sortByModifiedTime()用于创建一个元素数组,其中key是filename,value是一个重新格式化的时间戳,那么
rsort()
这对您有用吗?如果Lambda7没有给出一个完全精炼的答案,我会在下次有机会时给出。您的问题实际上是一个包含两部分的问题,涉及过滤
glob()
然后对结果进行排序。上有以前的答案,说明如何对文件进行排序:和。glob()过滤在这里:这里:是的,我做了,不需要重新格式化datetime表达式,因为它将作为整数进行比较,是的,我同意值作为键,我将编辑此是的,我做了,不需要重新格式化datetime表达式,因为它将作为整数进行比较,是的,我同意值作为键,我将编辑此
$files = glob("*.{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF}",GLOB_BRACE);
$sorted_files=array(); /* a new array that have modification time as values
and files as keys the purpose is to sort files according to the values in reverse order */ 
foreach ($files as $file)
{
    $sorted_files[$file]=filemtime($file);
}
arsort($sorted_files);
foreach ($sorted_files as $image=>$mtime)
{           
    echo basename($image)."<br />"; // show only image name if you want to show full path then use this code // echo $image."<br />";
    echo '<img src="'.$image .'" alt="Random image" />'."<br /><br />";
}