Nur Verzeichnisse in array die Dateien enthalten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Nur Verzeichnisse in array die Dateien enthalten

    Hallo zusammen,

    ich habe ein kleines Problem beim auswerten von Verzeichnissen.
    Ich lese mit scandir() das Hauptverzeichnis aus. Die gefunden Verzeichnisse werden in das Array $folders geschrieben.
    Soweit so gut. Allerdings stehen da alle Verzeichnisse drin, sprich auch die, die nur Unterordner enthalten aber keine Dateien.
    Die Dateien befinden sich in den Unterordner. Die Kombination Ordner und Dateien in einem Verzeichnis gibt es nicht.
    Nun möchte ich aber nur die Ordner in einem Array haben, die auch Dateien enthalten. Alle anderen sollen nicht angezeit werden.
    Bei dem folgenden Code bekomme ich zwar eine Array zurück, allerdings stehen da nur . und .. drin.
    Und genau da ist mein Problem, ich weiß nicht warum ?
    Da sollten eigentlich die Verzeichnisnamen drin stehen.

    Könntet ihr mir bitte da weiterhelfen ?!?! Danke ! ! ! !

    PHP-Code:
    foreach ($folders as $datei)
    {
        
    $zeiger opendir($datei);
        while (
    false !== ($verzeichnis readdir($zeiger)))
        {
            if(
    is_dir($verzeichnis) == true)
            {
                
    $verz[] = $verzeichnis;
            }    
        }
        
    closedir($zeiger);
    }

    print_r ($verz
    Gruß

    Michael

  • #2
    PHP-Code:
    <?php

    function filefolders($thedir) {
        
    $folders array_diff(scandir($thedir), ['.''..']);
        
    $filefolders array_filter($folders, function($folder) use ($thedir){
            
    $files scandir($thedir.DIRECTORY_SEPARATOR.$folder);
            return 
    array_filter($files, function($file) use ($thedir$folder){
                return 
    is_file($thedir.DIRECTORY_SEPARATOR.$folder.DIRECTORY_SEPARATOR.$file);
            });
        });
        return 
    $filefolders;
    }

    print_r(filefolders('all'));

    Kommentar

    Lädt...
    X