需要从文件夹中排序和打印图像

时间:2017-08-15 18:06:20

标签: php sorting web

我有一个问题我正在尝试创建一个网站,您可以上传图片,上传后您会看到上一个用户上传的图片。 图像存储在我的域中的一个文件夹中,但我不知道如何按日期对它们进行排序,实际上我使用的是这个代码,但它并不是很顺利

<?php
$search_dir = "uploads/".$row['Reference_No'];
$images = glob("$search_dir/*.jpg");
sort($images);
//display first image
if (count($images) > 0) { // at least one image exists
    $img = $images[0];// first image
    echo "<img src='../../$img'  border='0' /> ";
} else {
    shuffle($images);
    echo "<img src='../../$images'  border='0' /> ";        
}

2 个答案:

答案 0 :(得分:0)

我没有任何东西可以对此进行测试,但理论上它应该可行。

$search_dir = "uploads/".$row['Reference_No'];
$images = glob("$search_dir/*.jpg");

$time = array();
Foreach($images as $file){
    $time[] = filemtime($file);
}

array_multisort($time, $images);

Echo $images[0]; // first image
Echo end($images); // last image

Filemtime将获得上次修改时间。 http://php.net/manual/en/function.filemtime.php
Multisort将使用$ time作为前导数组对两个数组进行排序。 http://php.net/manual/en/function.array-multisort.php

答案 1 :(得分:0)

从目标目录中提取.jpg,存储上次修改的时间戳和文件名,按时间戳排序,然后按文件名排序(删除路径),排序,然后再循环输出数组。

$array=[];
foreach(glob("uploads/{$row['Reference_No']}/*.jpg") as $filename){
    // store modified timestamp and path-free filename
    $array[]=[filemtime($filename),substr($filename,strrpos($filename,'/')+1)];
}
sort($array);  // sort on modified timestamp, then on filename to break any ties
foreach($array as $a){
    echo $a[1],'<br>';  // display the filename
}