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