Unterordner auslesen Problem

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

  • Unterordner auslesen Problem

    Benötige hilfe beim Unterordner auslesen.
    Funktioniert wunderbar, allerdings wird immmer
    nur ein Ordner nach Dateien durchsucht.
    Wie kann ich einen Unterordner und einen Ordner
    darunter etc. auslesen?

    Freue mich auf rege Beteiligung

    PHP-Code:
    <?php
    //Liefert ein Array aller Verzeichnisse die Bilder enthalten an der angegebenen URL zurück
    function getAlben($url)
    {
      
    clearstatcache();
      
    $verz opendir($url);
      while (
    $file readdir($verz))
      {
        if((
    $file!=".") && ($file!="..") && (filetype($url.'/'.$file) == 'dir') && (getJPGAnzahl($url.'/'.$file)>0))
        {
          
    $albumArray[] = $url.'/'.$file;
        }
      
    closedir($verz);
      }

    @
    usort ($albumArray,"sortiere");

    if (isset(
    $albumArray)) {
            while (list (
    $key,$value) = each ($albumArray)) {
                              
    $returnArray[]=$value;
                      }
            return 
    $returnArray;
            }
    return (
    null);
    }


    //Liefert die Anzahl der nicht Thumbnail JPG-Dateien in einem Verzeichnis
    function getJPGAnzahl($url)
    {
      
    $verz=opendir($url);
      
    $JPGArray[] = $url;
      while (
    $file readdir ($verz))
      {
        if(!
    stristr($file,"_thumb.jpg") && stristr($file,".jpg"))
        {
          
    $JPGArray[] = $file;
        }
      }
      
    closedir($verz);
    return 
    sizeof($JPGArray)-1;
    }
    ?>

  • #2
    du kennst den begriff "rekursion"?

    Kommentar


    • #3
      Nein, kenne ich nicht.

      Kommentar


      • #5
        Danke

        Kommentar


        • #6
          Ich habe hier nun eine sehr schöne Funktion,
          mit der ich auch Unterordner auslesen können sollte.
          Allerdings wird nichts angezeigt. Funktioniert die Funktion bei euch?

          PHP-Code:
          <?php
          function show_dir($dir$all TRUE$format "<a href='[file]'>[file]</a>")
          {
              
          $dir trim($dir); // Leerzeichen
              
          if($dir == "" || !is_dir($dir)) return FALSE// Ungültiger Ordner

              
          $all trim(strtoupper($all)); // Leerzeichen, Buchstaben zu groß
              
          if($all != "TRUE" && $all != "FALSE" && $all != TRUE && $all != FALSE$all TRUE// Ungültiger Parameter: Auto-TRUE

              // Nun 3. Parameter checken
              
          if(strpos("[file]",$format) !== true)
              {
                  
          $format "<a href='[file]'>[file]</a>";
              }

              
          $handle opendir($dir); // Öffnen


              
          if($dir == ".") { $dir_o "Aktueller Ordner"; }
              else
              {
                  if(
          substr($dir,-1) == "/")
                  {
                      
          $dir_o substr($dir,0,(strlen($dir)-1));
                  }
                  else
                  {
                      
          $dir_o $dir;
                  }
              }

              
          $output "<b>".$dir_o.":</b><br>"// Ordner am Anfang
              
          $any FALSE// Check-Bool

              // Alle Dateien aus Ordner
              
          while (false !== ($file readdir($handle)))
              {
                  if(
          is_dir($file) && ($all == TRUE || $all == "TRUE")) // Wenn "Datei" ein Ordner ist und all TRUE
                  
          {
                      
          // Auf Slash checken
                      // und neuen Ordnernamen erstellen
                      
          if(substr($dir,0,-1) != "/")
                      {
                          
          $new_dir $dir."/".$file;
                      } else {
                          
          $new_dir $dir.$file;
                      }
                      
          // Code neu ausführen
                      
          echo show_dir($new_dir,$all,$format);

                      
          // Any
                      
          if($any==FALSE$any TRUE;
                  }
                  else 
          // Wenn kein Ordner
                  
          {
                      if(
          $file != "." && $file != "..")
                      {
                          
          $akt str_replace("[file]",$file,$format); // Container ersetzen
                          
          $output .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$akt."<br>"// Zum Output zufügen

                          // Wenn any noch FALSE ist, TRUE setzen
                          
          if($any==FALSE$any TRUE;
                      }
                  }
              }
              
          closedir($handle); // Dir schliessen

              // Wenn any FALSE ist (Keine Datei), FALSE zurückgeben, ansonsten den Output
              
          return $output;
          }

          /*

          void show_dir(string dir [, bool all [, string format]])

          dir: Ordner, der ausgegeben werden soll
          all: Unterordner auch ausgeben? (Standard ist TRUE)
          format: Format, in dem die Links zurückgeben werden sollen.
                  Standard: <a href='[file]'>[file]</a>
                  [file] ist der Container.

          Bei Fehlern oder keinen Dateien im Ordner liefert die Funktion FALSE,
          ansonsten den Output.

          Beispiele:
          ---------

          echo show_dir("dateien/",FALSE);
          echo show_dir(".",TRUE);
          echo show_dir("../anderes");


          */

          echo show_dir(".",TRUE); // Ausgabe der Ordner, in dem sich die Datei befindet
          ?>

          Kommentar


          • #7
            Original geschrieben von kerbstone
            ... Funktioniert die Funktion bei euch?
            ja.































            im root z.b.:

            PHP-Code:
            echo show_dir("mein_ordnerlein/",False); 
            steht doch da.
            ändere das mal, dann klappt 's auch mit dem link.
            PHP-Code:
            $format "<a href=".$dir."[file]>[file]</a>"
            Zuletzt geändert von tobias_k; 19.05.2005, 19:12.

            Kommentar


            • #8
              Ich habe mir die Ursprungsfunktion nun etwas umgeschrieben,
              damit ich per $_GET['dir'] Albenordner auslesen kann.
              Anzeige im root funktioniert, aber sobald ich einen
              Unterordner oder eine Datei anklicke erscheint nichts.

              Kann mich bitte jemand vom elendigen Leiden erlösen?

              PHP-Code:
              $root "./galerie";
              $dir $_GET['dir'];

              function 
              show_dir($dir$all=TRUE$format="<a href='[file]'>[file]</a>")
              {
                  
              $dir trim($dir);
                  if(
              $dir == "" || !is_dir($dir)) return FALSE;

                  
              $all trim(strtoupper($all));
                  if(
              $all != "TRUE" && $all != "FALSE" && $all != TRUE && $all != FALSE$all TRUE;

                  if(
              strpos("[file]",$format) !== true)
                  {
                      
              $format "<a href=?dir=".$dir."[file]>[file]</a>";
                  }

                  
              $handle opendir($dir);


                  if(
              $dir == ".") { $dir_o "Aktueller Ordner"; }
                  else
                  {
                      if(
              substr($dir,-1) == "/")
                      {
                          
              $dir_o substr($dir,0,(strlen($dir)-1));
                      }
                      else
                      {
                          
              $dir_o $dir;
                      }
                  }

                  
              $output "<b>".$dir_o.":</b><br>";
                  
              $any FALSE;

                  while (
              false !== ($file readdir($handle)))
                  {
                      if(
              is_dir($file) && ($all == TRUE || $all == "TRUE"))
                      {
                          if(
              substr($dir,0,-1) != "/")
                          {
                              
              $new_dir $dir."/".$file;
                          } else {
                              
              $new_dir $dir.$file;
                          }

                          echo 
              show_dir($new_dir,$all,$format);

                          if(
              $any==FALSE$any TRUE;
                      }
                      else
                      {
                          if(
              $file != "." && $file != "..")
                          {
                              
              $akt str_replace("[file]",$file,$format);
                              
              $output .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$akt."<br>";

                              if(
              $any==FALSE$any TRUE;
                          }
                      }
                  }
                  
              closedir($handle);

                  return 
              $output;
              }

              echo 
              show_dir("$root/$dir",TRUE); 

              Kommentar

              Lädt...
              X