DeepJack adlı üyeden alıntı

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...