Problem mit Verzeichnisausgabe

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

  • Problem mit Verzeichnisausgabe

    Hallo,

    ich versuche, mit folgendem Script den kompletten Verzeichnisbaum mit allen Unterverzeichnissen und Dateien auszugeben. Im obersten Verzeichnis funktioniert es. Aber das Script geht nur ein Verzeichnis nach unten. Weitere Verzeichnisse in Unterverzeichnissen werden nur als Datei dargestellt, und nicht weiter geöffnet.Ich komm nicht dahinter, woran es liegt.

    PHP-Code:
    <?PHP

    function show_dir($dir)
    {

        
    $handle = @opendir($dir);
        while (
    false !== ($file readdir ($handle))) 
        {
            if (
    preg_match("=^\.{1,2}$="$file))
            {
                continue;
            }

            if(
    is_dir($file))
            { 
                echo 
    "<b>".$dir.$file."</b><br>";
                
    show_dir($file."/");
            }
            else
            { 
                echo 
    $dir.$file."<br>";
            }
        }
        
        @
    closedir($handle);
    }

    show_dir(".");

    ?>

  • #2
    Das @ auch schon mal entfernt und error_reporting() voll aufgedreht ? Ich vermute du übergibst nur bei der ersten Verzeichnisebene korrekte Pfade, bei jeder weiteren Ebene stimmen die dann nicht mehr. Drum das @ weg und schauen ob opendir() einen Fehler wirft. Meiner Meinung nach müsstest du beim rekursiven Aufruf des Verzeichnisses auch $dir mitgeben und nicht nur $file.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Habe die @ entfernt, bekomme aber keine Fehler. Error reporting ist an.

      Kommentar


      • #4
        Jo das war die Lösung mit den Verzeichnissen beim rekursiven Aufruf.
        Danke Dir jahlives, So funktioniert es:


        PHP-Code:
        function show_dir($dir)
        {

            
        $handle opendir($dir);
            while (
        false !== ($file readdir ($handle))) 
            {
                if (
        preg_match("=^\.{1,2}$="$file))
                {
                    continue;
                }

                if(
        is_dir($dir.$file))
                { 
                    echo 
        "<b>".$dir.$file."</b><br>";
                    
        show_dir($dir.$file."/");
                }
                else
                { 
                    echo 
        $dir.$file."<br>";
                }
            }
            
            
        closedir($handle);
        }

        show_dir("./"); 

        Kommentar

        Lädt...
        X