PHP: упорядоченный список каталогов - PullRequest
4 голосов
/ 12 марта 2010

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

Ответы [ 5 ]

14 голосов
/ 12 марта 2010
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 />'; 
} 

Кредит идет сюда .

3 голосов
/ 12 марта 2010

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

1 голос
/ 12 марта 2010

Решением будет:

  • Перебирать файлы в каталоге - используя 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

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

0 голосов
/ 12 марта 2010
0 голосов
/ 12 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...