У меня проблема: я пытаюсь создать веб-сайт, на который вы можете загрузить картинку, и после загрузки вы увидите картинку, которую выгрузил предыдущий пользователь.
Изображения хранятся в папке в моем домене, но я не знаю, как их отсортировать по дате, на самом деле я использую этот код, но он не очень хорошо
<?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' /> ";
}
Извлеките файлы .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
}
У меня нет ничего, чтобы проверить это, но в теории это должно работать.
$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