PHP oluşturma / değiştirme tarihine göre dosyaları sıralama [yinelenen]

6 Cevap

Possible Duplicate:
File creation time

PHP, nasıl oluşturulma tarihi (veya diğer herhangi bir sıralama mekanizması) olanlar bir klasöre bulunan dosyaları almak için?

According to the doc, readdir() fonksiyonu:

The filenames are returned in the order in which they are stored by the filesystem.

6 Cevap

bir diziye onların bilgilerini kaydetmek, dizi ve daha sonra döngü dizi sıralamak

if($h = opendir($dir)) {
  $files = array();
  while(($file = readdir($h) !== FALSE)
    $files[] = stat($file);

  // do the sort
  usort($files, 'your_sorting_function');

  // do something with the files
  foreach($files as $file) {
    echo htmlspecialchars($file);
  }
}

Bu benim çözüm:

$fileList = array();
$files = glob('home/dir/*.txt');
foreach ($files as $file) {
    $fileList[filemtime($file)] = $file;
}
ksort($fileList);
$fileList = array_reverse($fileList, TRUE);
print_r($filelist);

çıktı bu gibi:

array(
    (int) 1340625301 => '/home/dir/file15462.txt',
    (int) 1340516112 => '/home/dir/file165567.txt',
    (int) 1340401114 => '/home/dir/file16767.txt'
)

Sonra "foreach" döngüsü ile ihtiyacınız dosya almak.

Bunu sırasıyla, sonra da fileatime() kullanın veya filectime(), her dosyanın erişimini veya oluşturma süresini görmek için, scandir() bir diziye dizinin içeriğini okumak için kullanabilirsiniz. Buradan dizi sıralama çok zor olmamalı.

shell_exec os-düzeyde bir komutu çalıştırmak için kullanılır? Linux / Unix kutuyu bu iş olabilir;

$output=shell_exec('ls -t1');