каталог — Как отсортировать по дате, используя PHP opendir ()

У меня есть каталог, полный файлов, которые я пытаюсь найти. Если файл является изображением, само изображение выводится на экран. Если файл не является изображением, его имя выводится на экран.

Приведенный ниже код отлично работает, но я не могу отсортировать заказ по дате. Файлы случайно выводятся на экран.

Как бы сделать так, чтобы файлы сортировались по последнему измененному (последнему сначала).

<?php


$blacklist = array("index.php");
$ext = pathinfo($files, PATHINFO_EXTENSION);

if ($handle = opendir('.')) {

$valid_image = array("jpg", "jpeg", "png", "gif");

while (false !== ($entry = readdir($handle))) {
krsort($entry);

if ($entry != "." && $entry != ".." && !in_array($entry, $blacklist)) {

$exploded = explode('.', $entry);

if(in_array(end($exploded), $valid_image))
{
echo "<div><h4>"; echo date('d F Y', filemtime($file)) . "</h4><a href='" . $entry . "'><img src='".$entry."'></a></div><hr>";
}
else
{
echo "<div><h4>"; echo date('d F Y', filemtime($file)) . "</h4><a href='" . $entry . "'>" . $entry . "</a></div>";
}
}
}
closedir($handle);
}
?>

0

Решение

// Create an empty array, outside your loop
$files = array();

while (false !== ($entry = readdir($handle))) {
if(in_array(end($exploded), $valid_image)){

// Instead of echoing the string, add it to the array, using filemtime as the array key
$files[filemtime($file)] = "<div><h4>".date('d F Y', filemtime($file)) . "</h4><a href='$entry'><img src='$entry'></a></div><hr>";

} else...
}

// reverse sort on the array
krsort($files);

// output the array in a loop
foreach($files as $file){
echo $file;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]