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++;
}
?>
Merhaba arkadaşlar aşağıda iki adet kod var bu kodlardan ilki dosya içerisindeki verileri sıralamamı sağlıyor ikincisi ise verileri düzenleme tarihine göre sıralıyor bu iki kodu bir araya getirebilecek bir arkadş bana yardımcı olursa çok sevinirim.
Bir diğer konu ise verileri çekeceğim yerde veri sayısı çok fazla olduğundan bunu 10'arlı halde sayfalamamda gerekiyor şimdiden teşekkürler...
<?php
$dizin = "test";
$uzanti = "htm"; //hangi uzantı?
//Uzantı alma fonksiyonu
function ext($text) {
$text = strtolower(pathinfo($text, PATHINFO_EXTENSION));
return $text; }
echo '<div class="title"><b>'.$uzanti.'</b> uzantılı 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
$class = ($css % 2) ? "satir1" : "satir2"; // her satira farklı class
echo '
<div class="'.$class.'"><a href="'.$dizin.'/'.$file.'">'.$file.'</a> </div>';
$css++;
}
} //while end
closedir($handle);
}
?>function filesByDate( $directory ) {
$files = array();
if( !$dh = opendir( $directory ) ) {
trigger_error( "Failed to open directory [" . $directory . "]", E_USER_WARNING );
return false;
}
while( ($file = readdir( $dh )) !== false ) {
$files[$file] = fileatime( $directory . DIRECTORY_SEPARATOR . $file );
}
asort( $files );
return array_keys( $files );
}