PHP: упорядоченный список каталогов

Как перечислить файлы в каталоге в порядке «последней измененной даты»? (PHP5 в Linux)

function newest($a, $b) { return filemtime($a) - filemtime($b); } $dir = glob('files/*'); // put all files in an array uasort($dir, "newest"); // sort the array by calling newest() foreach($dir as $file) { echo basename($file).'<br />'; } 

Кредит идет здесь .

читать файлы в каталоге, используя readdir для массива вместе с сохраненным filemtime . Сортируйте массив на основе этого значения, и вы получите результаты.

Решением было бы:

  • Итерации по файлам в каталоге – например, с помощью DirectoryIterator
  • Для каждого файла получите свое последнее время модификации, используя SplFileInfo::getMTime
  • Поместите все это в массив, используя:
    • имена файлов как ключи
    • Время модификации как значения
  • И отсортируйте массив с помощью asort или arsort – в зависимости от порядка, в котором вы хотите использовать ваши файлы.

Например, эта часть кода:

 $files = array(); $dir = new DirectoryIterator(dirname(__FILE__)); foreach ($dir as $fileinfo) { if (!$fileinfo->isDot()) { $files[$fileinfo->getFilename()] = $fileinfo->getMtime(); } } arsort($files); var_dump($files); 

Дает мне :

 array 'temp.php' => int 1268342782 'temp-2.php' => int 1268173222 'test-phpdoc' => int 1268113042 'notes.txt' => int 1267772039 'articles' => int 1267379193 'test.sh' => int 1266951264 'zend-server' => int 1266170857 'test-phing-1' => int 1264333265 'gmaps' => int 1264333265 'so.php' => int 1264333262 'prepend.php' => int 1264333262 'test-curl.php' => int 1264333260 '.htaccess' => int 1264333259 

т.е. список файлов в каталоге, где хранится мой скрипт, с последним измененным в начале списка.

Попробуйте этот же запрос в google, и вы получите ответы быстрее. Приветствия. http://php.net/manual/en/function.filemtime.php