• 23-12-2022, 22:13:35
    #1
    İç içe olan klasörlerden dosyalarını listeleme kodunu nasıl yazabilirim?
    bu kodum sadece dosyaları listeliyor. Klasörleri de listelemesini istiyorum ve klasörse tekrar aynı foksiyonu çagırmasını istiyorum. fonksiyon içinde fonksiyon yani.

    function klasorListeleme($dizin){
        $dizin = opendir("dosyalar");
        if($dizin) {
            while($veri = readdir($dizin)){
                if($veri !="." and $veri !="..")
                    echo "<li>".$veri."</li><br>";
                }
            }
    
        }
    }
  • 23-12-2022, 22:17:08
    #2
    function getDirectories(string $path) : array
    {
    $directories = [];
    $items = scandir($path);
    foreach ($items as $item) {
    if($item == '..' || $item == '.')
    continue;
    if(is_dir($path.'/'.$item))
    $directories[] = $item;
    }
    return $directories;
    }
    böyle bişey mi hocam?
  • 23-12-2022, 22:18:47
    #3
    Zamaninda banada lazim olmustu :


    function hepsinidok($dir){
        $ffs = scandir($dir);
    
        unset($ffs[array_search('.', $ffs, true)]);
        unset($ffs[array_search('..', $ffs, true)]);
    
        if (count($ffs) < 1)
            return;
    
        echo '<ol>';
        foreach($ffs as $ff){
            echo '<li>'.$ff;
            if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
            echo '</li>';
        }
        echo '</ol>';
    }
    
    hepsinidok('./');
  • 23-12-2022, 22:20:12
    #4
    bilirkishi adlı üyeden alıntı: mesajı görüntüle
    Zamaninda banada lazim olmustu :


    function hepsinidok($dir){
        $ffs = scandir($dir);
    
        unset($ffs[array_search('.', $ffs, true)]);
        unset($ffs[array_search('..', $ffs, true)]);
    
        if (count($ffs) < 1)
            return;
    
        echo '<ol>';
        foreach($ffs as $ff){
            echo '<li>'.$ff;
            if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
            echo '</li>';
        }
        echo '</ol>';
    }
    
    hepsinidok('./');
    hocam bunun çalışması için listFolderFiles fonksiyonuna ihtiyaç yok mu?
  • 23-12-2022, 22:23:05
    #5
    alt dosyalardakilerde lazımsa glob ile tüm verileri çekebilirsin.
    Parsel parsel listeleme yapacaksan. directory üstünden sorgu yapabilirsin.
    Örneğin

    /var/www
    /var/www/subdir
    /var/www/subdir/sub2
  • 23-12-2022, 22:28:11
    #6
    Mhmmd adlı üyeden alıntı: mesajı görüntüle
    function getDirectories(string $path) : array
    {
    $directories = [];
    $items = scandir($path);
    foreach ($items as $item) {
    if($item == '..' || $item == '.')
    continue;
    if(is_dir($path.'/'.$item))
    $directories[] = $item;
    }
    return $directories;
    }
    böyle bişey mi hocam?
    hocam kod için teşekkürler ama biz opendir ile readdir i gördük sadece.