Alle Dateien in Verzeichnis + Unterverzeichnis ausgeben ?!

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

  • Alle Dateien in Verzeichnis + Unterverzeichnis ausgeben ?!

    Hallo =)

    Ich möchte wies schon im Thema steht alle Dateinamen & und die im Unterverzeichnis ausgeben lassen. Ich habe nu Folgenden Code:

    PHP-Code:
        $hand opendir("inc/");

        
    $i=0;
        while(
    $dat readdir($hand)) {
            if(
    $dat[$i] != "." || $dat[$i] != "..") {
                if(
    is_dir($dat[$i])) {
                    
    $hand2 opendir("inc/".$dat[$i]);
                    while(
    $dat1 readdir($hand2)) {
                    if(
    $dat1[$i] != "." || $dat1[$i] != "..") {
                        
    $datei[$i] = "inc/".$dat[$i]."/".$dat1[$i];
                    }
                }
            } else {
                
    $datei[$i] = "inc/".$dat[$i];
            }
            
    $i++;
        }
    }
        
    $asg "";
        for(
    $p=0;$p<sizeof($datei);$p++) {
            
    $asg .= "<a href=adminc.php?action=file_edit&file=$datei[$p]>$datei[$p]</a><br>\n";

    Allserdings gibt er mir
    Code:
    inc/./d
    inc/./b
    inc/m
    inc/t
    inc/o
    inc//
    inc//
    inc//
    inc//
    inc//
    inc//
    inc//
    inc//
    Aus =((

    Kann mir einer von euch biotte helfen ?

    Danke im Vorraus =)
    cu

  • #2
    Die Rückgabe von readdir() ist kein Array.

    PHP-Code:
    $dir="./inc";
    $handle=opendir($dir);
    while (
    $file readdir($handle))
    {
        if(
    $file!="." && $file!=".."
        {
            echo 
    $dir."/".$file."<br>";
        }
    }
    closedir($handle); 
    Wenn du Unterverzeichnisse darstellen willst, mach das am besten mit Rekursion. Pass aber auf, dass das nicht ausufert.
    Am besten nur 1 oder 2 Levels tiefer.
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #3
      Original geschrieben von Troublegum
      Die Rückgabe von readdir() ist kein Array.

      PHP-Code:
      $dir="./inc";
      $handle=opendir($dir);
      while (
      $file readdir($handle))
      {
          if(
      $file!="." && $file!=".."
          {
              echo 
      $dir."/".$file."<br>";
          }
      }
      closedir($handle); 
      Wenn du Unterverzeichnisse darstellen willst, mach das am besten mit Rekursion. Pass aber auf, dass das nicht ausufert.
      Am besten nur 1 oder 2 Levels tiefer.
      Danke, es geht, aber was ist eine Rekursion ?
      cu =)

      Kommentar


      • #4
        Eine Rekursion ist, wenn eine Funktion sich selbst aufruft.

        Beispiel: Du hast eine Funktion getdir()
        Diese öffnet ein Verzeichnis und schreibt alle Dateien und Verzeichnisse auf den Bildschirm.
        Sollte ein Verzeichnis auftreten, ruft sich die Funktion selbst wieder auf, nur dass sie jetzt dieses Verzeichnis öffnet.

        Das Beispiel erklärt sich eigentlich von selbst.

        PHP-Code:
        <?php
        GetDirArray
        ("./inc/");
        function 
        GetDirArray($sPath)
        {
            
        //Load Directory Into Array
            
        $handle=opendir($sPath);
            while (
        $file readdir($handle))
            {
                    
        $retVal[count($retVal)] = $file;
            }
            
        //Clean up and sort
            
        closedir($handle);
            
        sort($retVal);
            
        //return $retVal;

            
        while (list($key$val) = each($retVal))
            {
                if (
        $val != "." && $val != "..")
                {
                        
        $path str_replace("//","/",$sPath.$val);
                        echo 
        "$path<br>";
                        if (
        is_dir($sPath.$val))
                        {
                            
        GetDirArray($sPath.$val."/");
                        }
                    }
            }
        }
        ?>
        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

        © Harald Schmidt

        Kommentar


        • #5
          Danke ein 2. mal =)

          Aber wie bekomm ich $path<br> jetz noch inne Variable ?
          Wenn ich das nämlich so ausgebe wirds über der Template ausgegeben =(

          cu =)
          *ausfmschlauchsteh*

          Kommentar


          • #6
            Damit wird der Output in $dir gespeichert (Array).

            PHP-Code:
            <?php
            GetDirArray
            ("./dev/");

            // Ausgabe von $dir
            for($i=0;$i<count($dir);$i++) {
                echo 
            "$dir[$i]<br>";
            }


            function 
            GetDirArray($sPath)
            {
                global 
            $dir// ARRAY $DIR MUSS GLOBAL SEIN
                //Load Directory Into Array
                
            $handle=opendir($sPath);
                while (
            $file readdir($handle))
                {
                        
            $retVal[count($retVal)] = $file;
                }
                
            //Clean up and sort
                
            closedir($handle);
                
            sort($retVal);
                
            //return $retVal;

                
            while (list($key$val) = each($retVal))
                {
                    if (
            $val != "." && $val != "..")
                    {
                            
            $path str_replace("//","/",$sPath.$val);
                            
            $dir[] = $path// SPEICHERUNG IM ARRAY $DIR
                            
            if (is_dir($sPath.$val))
                            {
                                
            GetDirArray($sPath.$val."/");
                            }
                        }
                }
            }
            ?>
            [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
            [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
            [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

            © Harald Schmidt

            Kommentar


            • #7
              danke, funtzt perfekt

              cu =)

              Kommentar

              Lädt...
              X