PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Problem mit Verzeichnisausgabe (https://www.php-resource.de/forum/php-developer-forum/77860-problem-mit-verzeichnisausgabe.html)

thesilencer5 10-11-2006 15:29

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(".");

?>


jahlives 10-11-2006 15:49

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

thesilencer5 10-11-2006 15:52

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

thesilencer5 10-11-2006 16:02

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("./"); 



Alle Zeitangaben in WEZ +2. Es ist jetzt 05:53 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG