DIR && SUBDIR in Dropdown...

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

  • DIR && SUBDIR in Dropdown...

    Mahlzeit!

    Habe folgendes Problem:
    Ich will eine Verzeichnisstruktur in einem Dropdownmenü anzeigen, was für's erste gut klappt. jedoch irgendwie bekomm ich es überhaupt nicht gebacken Subverzeichnisse mit zu listen.

    Hier mal der Code zur Listung ohne Subverzeichnisse:
    PHP-Code:
    echo '<SELECT NAME="Verzeichnisse">';
    //Name des Verzeichnisses angeben, welches geöffnet werden soll
    $verz opendir("."); 
    while (
    $file readdir($verz)){ 
      if (
    is_dir($file) && $file != '.' && $file != '..') {
       echo 
    '<OPTION>'.$file.'</OPTION>';
      }
    }
    echo 
    '</SELECT>';
    closedir($verz); 
    Jmd ne Idee? Danke für eure Antworten!
    WHILE (!$asleep) { $sheep++; }

  • #2
    Definiere dein Problem bitte etwas genauer. So könnte man meinen, du willst dir nur den fertigen Code besorgen.

    Kommentar


    • #3
      kk Tobi; Das ist verständlich!

      Also mein Lösungsansatz war so..:

      PHP-Code:
      $verz opendir("."); 
      while (
      $file readdir($verz)){ 
        if (
      is_dir($file) && $file != '.' && $file != '..') {
         echo 
      '<OPTION>'.$file.'</OPTION>';
         
      $file readdir($file); // Hier der Ansatz!!!!
        
      }

      Leider werden mir trotzdem nur die "Hauptverzeichnisse" ausgegeben!
      WHILE (!$asleep) { $sheep++; }

      Kommentar


      • #4
        dafür brauchst du eine funktion die rekursiv arbeitet. etwa so
        PHP-Code:
        function readDir ($dir)
        {
           while (
        $file readdir($verz))
           { 
              if (
        is_dir($file) && $file != '.' && $file != '..'
              {
                 
        // hier ruft sich die funktion selber auf 
                 
        readDir ($dir.'/'.$file)
              }
           }

        nur das prinzip

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Ok hab das ganze jetzt nach Peter's Tipp abgeändert, aber Subdirs werden trotzdem keine ausgegeben!

          PHP-Code:
          $verz opendir("."); 
          while (
          $file readdir($verz)){ 
            if (
          is_dir($file) && $file != '.' && $file != '..') {
             echo 
          '<OPTION>'.$file.'</OPTION>';
              while (
          $file readdir($verz.'/'.$file)){ 
                if (
          is_dir($file) && $file != '.' && $file != '..') {
                 echo 
          '<OPTION>'.$file.'</OPTION>';
                }
              }
            }
          }
          echo 
          '</SELECT>';
          closedir($verz); 
          WHILE (!$asleep) { $sheep++; }

          Kommentar


          • #6
            Sicher fängst du heute auch noch an selbst zu debuggen, anstatt jedes posting mit einem bloßen "geht nicht" abzutun.

            im übrigen erkenne ich dort auch keine Rekursion. Also bitte.

            Kommentar


            • #7
              Ich debugge die ganze zeit! Ich hielt es nur für etwas übertrieben jeden attempt zu posten.
              WHILE (!$asleep) { $sheep++; }

              Kommentar


              • #8
                du musst eine funktion definieren und die selber aufrufen! außerdem musst du darauf achten, dass sich $dir jedesmal ändert.

                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  http://de.wikipedia.org/wiki/Rekursion

                  und neu ist das ganze ja auch nicht:

                  http://www.php-resource.de/forum/sho...lesen+rekursiv

                  Kommentar


                  • #10
                    ok; also ich hab das jetzt ausgiebig getestet und duzende Versuche gestartet mit der von Tobi geposteten funktion zu lösen.
                    Die Funktion selbst leuchtet ein, jedoch bekomme ich echt verwunderliche Ergebnisse raus! Seht selbst:

                    click2view

                    Und folgenden code hab ich aktuell in Verwendung:
                    PHP-Code:
                    function getDirContent($dir$ignore) {
                        
                    // Gibt Array mit Verzeichnis-Inhalt zurueck
                        
                    $content = array();
                        
                    $dp opendir($dir);
                        while (
                    $file readdir($dp)) {
                            if(!
                    in_array($file$ignore)) {
                                if (
                    is_dir($dir '/' $file)) {
                                    
                    // Falls es ein Unterverzeichnis gibt, wird dieses auch ausgelesen
                                    
                    $content[$file] = getDirContent($dir '/' $file$ignore);
                                } else {
                                    
                    $content[] = $file;
                                }
                            }
                        }

                        return 
                    $content;
                    }


                    $test = array();
                    $dir 'pics';
                    $ignore = array('thumbs''"."''".."');
                    getDirContent($dir$ignore);

                    foreach (
                    $content as $value) {
                       echo 
                    "Wert:  $value<br />\n";

                    Lg. Berny
                    Zuletzt geändert von nichtsooft; 24.03.2007, 20:15.
                    WHILE (!$asleep) { $sheep++; }

                    Kommentar


                    • #11
                      Kind,

                      du schaffst es immer noch nicht zu debuggen, geschweige denn dein Problem in Worte zu fassen.

                      Was ist so schwer daran anhand der meldung mal seine variablen zu überprüfen?

                      Warning: opendir(pics/./././././.[...]./././././././././. in /srv/www/web4/html/nichtsooft/Maerz/includes/img_test.php on line 95

                      Kommentar


                      • #12
                        warum nimmst du nicht den GESAMTEN code? z.b.die funktion getDirectory? das funktioniert bei mir wunderbar!

                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          OffTopic:
                          ach du schreck ... der arme Webserver

                          Kommentar


                          • #14
                            +++++++++++ asp2php
                            1000% ack
                            WHILE (!$asleep) { $sheep++; }

                            Kommentar


                            • #15
                              OffTopic:
                              sag mal gib es in Österreich die Gesellschaftsform incorporate company oder du hast nur so inc. hinzugefügt?

                              Kommentar

                              Lädt...
                              X