Alle Dateien in Verzeichnis + Unterverzeichnis ausgeben ?!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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 =)

      Comment


      • #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

        Comment


        • #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*

          Comment


          • #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

            Comment


            • #7
              danke, funtzt perfekt

              cu =)

              Comment

              Working...
              X