resimleri upload ediyorum, ama tarhie göre sıralanmasını istiyorum. filemtime uygulamam gerekiyor, ama nerede ve nasıl uygulayacağımı bilemiyorum. yardım lütfen. iki farklı kod var, ikisi de aynı işi görüyor.
1. Kod:
$scandir_array = scandir('files');
foreach($scandir_array as $folder){
if(is_dir('files/'.$folder) and $folder!='.' and $folder!='..'){
// define this key in the array, it will be blank, store categories as keys
$categories_array[$folder] = array();
// $total_photos_array[$folder] = 0;
$files_in_dir = scandir('files/'.$folder);
foreach($files_in_dir as $file){
if($file!='.' and $file!='..'){
// if file is not the category thumbnail (thumbnail.jpg) and not _thumb.jpg and not _small.jpg
if($file != "thumbnail.jpg" and substr($file, strlen($file)-10) != "_small.jpg" and substr($file, strlen($file)-10) != "_thumb.jpg"){
Dosyalara döngü içinde ulaştığında yeni bir dizi oluşturup dizi elemanlarınıın anahtarlarını filemtime eklemen değer olarakda dosyayı ataman gerek ki daha sonra ksort veya krsort ile sıralama işlemini yapacaksın.
Ben kolay bi örnek sunayım sana
img klasörümdeki dosyaları listeledim. her listelediğim bir resmi $files dizisine atadım. Atama işlemi yaparken $files dizisine key olarak filemtime($file) yazıp değiştirilme tarihini ekledim
$files = array(); if ($handle = opendir('img')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $files[filemtime($file)] = $file; }
} closedir($handle); }
ksort($files);
ksort($files); → önce eklenenden sonra eklenene doğru sıralar (küçükten büyüğe)
krsort($files); → Son eklenenden önce eklenenlere doğru sıralar (büyükten küçüğe)
Bu işlemi yaptıktan sonra ekrana basmak istersen foreach ile $files dizinini döndüreceksin filemtime tarihi unix formatında verir o yüzden date fonksiyonuyla istediğin bir biçime çevirmen gerekecektir.
Kısacası ekrana şu şekilde listelersin
foreach ($files as $time => $file) { $time = date("d F Y H:i", $time); echo $file.' isimli dosya sisteme '.$time.' tarihinde eklendi. <br>'; }
< Bu mesaj bu kişi tarafından değiştirildi atabas61 -- 16 Şubat 2015; 14:45:06 >
Teşekkürler cevabın için, en son şuraya kadar geldim. arsort ile tarihe göre sıraladım bütün kategorileri, fakat kategorilerde bulunan _thum.jpg dosyaları bastığım zaman, alt klasördeki resimleri göstermiyor. nerde bir eksiğim var anlayamadım.
foreach ( $temp_array as $folder ) { // define this key in the array, it will be blank, store categories as keys $categories_array [$folder] = array (); $files_in_dir = scandir ( 'files/' . $folder ); foreach ( $files_in_dir as $file ) { if ($file != '.' and $file != '..') { // if file is not the category thumbnail (thumbnail.jpg) and not _thumb.jpg and not _small.jpg if ($file != "thumbnail.jpg" and substr ( $file, strlen ( $file ) - 10 ) != "_small.jpg" and substr ( $file, strlen ( $file ) - 10 ) != "_thumb.jpg") { $base_file_name = substr ( $file, 0, strlen ( $file ) - 4 ); // insert this file in the array of files array_push ( $categories_array [$folder], $base_file_name ); } // if } // if } // foreach } // foreach
< Bu mesaj bu kişi tarafından değiştirildi yengec -- 22 Şubat 2015; 20:47:48 >
1. Kod:
$scandir_array = scandir('files');
foreach($scandir_array as $folder){
if(is_dir('files/'.$folder) and $folder!='.' and $folder!='..'){
// define this key in the array, it will be blank, store categories as keys
$categories_array[$folder] = array();
// $total_photos_array[$folder] = 0;
$files_in_dir = scandir('files/'.$folder);
foreach($files_in_dir as $file){
if($file!='.' and $file!='..'){
// if file is not the category thumbnail (thumbnail.jpg) and not _thumb.jpg and not _small.jpg
if($file != "thumbnail.jpg" and substr($file, strlen($file)-10) != "_small.jpg" and substr($file, strlen($file)-10) != "_thumb.jpg"){
// $total_photos_array[$folder]++;
$base_file_name = substr($file, 0, strlen($file)-4);
// insert this file in the array of files
array_push($categories_array[$folder], $base_file_name);
}
}
}
}
}
krsort($categories_array);
2. Kod:
if ($handle = opendir('files')) {
while (false !== ($folder = readdir($handle))) {
if(is_dir('files/'.$folder) and $folder!='.' and $folder!='..'){
// define this key in the array, it will be blank, store categories as keys
$categories_array[$folder] = array();
// $total_photos_array[$folder] = 0;
$files_in_dir = scandir('files/'.$folder);
foreach($files_in_dir as $file){
// if file ends in _thumb.jpg
if(strpos($file, '_thumb.jpg') === strlen($file)-10){
// $total_photos_array[$folder]++;
$base_file_name = substr($file, 0, strlen($file)-10);
// insert this file in the array of files
array_push($categories_array[$folder], $base_file_name);
}
}
}
}
closedir($handle);
}
krsort($categories_array);
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.