Buyrun
<?php $dir = "folder_name"; $files = []; function listFiles($dir) { global $files; if ($handle = opendir($dir)) { while (false !== ($file_name = readdir($handle))) { $file_path = $dir . '/' . $file_name; // 1) Alt klasörlereki dosyaları da diziye ekleme if ($file_name != "." && $file_name != "..") { if (is_dir($file_path)) { listFiles($file_path); } else { // 3) Sadece resim uzantısına sahip dosyaları diziye ekleme $allowed_extensions = ['jpg', 'jpeg', 'png', 'gif']; $file_info = pathinfo($file_path); if (in_array(strtolower($file_info['extension']), $allowed_extensions)) { $files[] = $file_path; } } } } closedir($handle); } } listFiles($dir); // 2) Klasör adlarını listeye eklememe $files = array_filter($files, function($file) { return !is_dir($file); }); // Dosyaları kontrol et ve array dizisine atama if (!empty($files)) { // Rastgele bir dosyayı seç $random_file = $files[array_rand($files)]; // Seçilen dosyayı ekrana yazdır echo "file: " . $random_file; } else { echo "Klasörde uygun dosya bulunamadı."; } ?>
Üstadım elinize , zihninize sağlık...
Şu aşamaları da geçebiliriz umarım;
1) Aynı anda 3 dosya çağırmak ve sayfada kullanmak için ne yapmalıyız?
2) Bu 3 dosyadan birinin mutlaka mp3 dosyası olmasını nasıl zorunlu hale getirebiliriz?
$allowed_extensions = ['jpg', 'jpeg', 'png', 'webp', 'gif', 'mp3'];
3) Dosyaların boyut ve süre bilgilerini elde etmek mümkün mü?
(Mümkünse sayfada kullanılan mp3 dosyasının süresi sona erdiğinde sayfa yönlendirilecek.)
4) Gelen dosya isimleri içinde TÜRKÇE karakter olduğunda � şeklinde gözüküyorlar ve html kodları çalışmıyor.
Bu nedenle gerekii utf8 karakter ayarlamasını koda nasıl entegre edebiliriz?
(Dosya adını TÜRKÇE fonksiyonu ile revize etmek işe yaramıyor çünkü klasör içindeki dosyanın adı eğişmiş olmuyor...)
5) Adı "abc" olan bir klasör varsa bu klasörün ve içindeki dosyaların hariç tutulmasını nasıl sağlayabiliriz?
6) Adında "ç , w, 3" karakteri olan dosyalar varsa bu dosyaların hariç tutulmasını nasıl sağlayabiliriz?
+) $allowed_extensions = ['*']; => Bu kod çalışmadı, çalışan halini nasıl yazabiliriz?
Bildiğiniz kadarı ile aydınlatırsanız çok sevinirim, tekrar teşekkürler...