Selamlar,
Anladığım kadarı ile dizin içerisindeki belli uzantıya sahip dosyaları tarih sırasına göre sıralamak?! Bunun için iki kodu bir araya getirerek bir şey yapamayız. Tek çıkar yolu önce dizindeki dosyaları okuyup bunların tarihlerini ve adlarını array ile dizi içerisine almak. Daha sonra eşleştirme yapıp foreach ile arrayi tekrar okumak.
Burda sıkıntı şu aslında, aynı tarihte olan dosyalar aynı key ile atıldığında array dizisi bozulur. Farklı bir yöntem ile yapacağız. Sizin kodunuza göre örnek bir kod yazdım.
Umarım faydalı olmuştur. Kolay gelsin.
<?php
$dizin = "test/";
$uzanti = "htm"; //hangi uzantı?
//Uzantı alma fonksiyonu
function ext($text) {
$text = strtolower(pathinfo($text, PATHINFO_EXTENSION));
return $text;
}
$dosyaAdi = array(); // yeni
$dosyaTarih = array(); // yeni
echo '<div class="title"><b>'.$uzanti.'</b> uzantili dosyalar:</div>';
if ($handle = opendir("$dizin") or die ("Dizin acilamadi!")) {
while (false !== ($file = readdir($handle))) {
$filetype = ext($file);
if(is_file($dizin."/".$file) && $filetype == "$uzanti") { //eger bir dosya ise ve bizim belirlediğimiz uzantıya sahipse
$dosyaAdi[] = $file; // yeni
$dosyaTarih[] = filemtime($dizin."/".$file); // yeni
}
} //while end
closedir($handle);
}
/* tarihe göre sıralama */
asort($dosyaTarih); // küçükten büyüğe doğru tarihleri göre sırala
$dosyaAdlari_Array = array_keys($dosyaTarih);
foreach ($dosyaAdlari_Array as $key=>$name) $name = $dosyaAdi[$value];
$dosya_tarihleri = array_merge($dosyaTarih);
$i = 0;
foreach ($dosya_tarihleri as $dtarih){
$ix = $dosyaAdlari_Array[$i];
$dosya = $dosyaAdi[$ix];
$i++;
$class = ($css % 2) ? "satir1" : "satir2"; // her satira farklı class
echo '
<div class="'.$class.'"><a href="'.$dizin.'/'.$dosya.'">'.$dosya.'</a> - Tarih: '.date("d.m.Y - H:i:s",$dtarih).' </div>';
$css++;
}
?>