schmichl: Ordner aus einem Verzeichnis aulesen

Schönen Abend!

Ich habe mir mit PHP eine dynamische Fotogalerie mit Fotoindex, Diashow, Kommentarfunktion usw. gebastelt.
Die Bilder werden aus einem Ordner ausgelesen und nacheinander aufgelistet (der Ordner wird z.B. so angegeben: galerie.php?album=fotoseins).
Dafür habe ich dieses Schnipsel verwendet:

$bild_pfad = "./fotos/".$_GET['id']."";
$open_pfad=@opendir($bild_pfad);
$PicCODE= 1;
while ($find = @readdir($open_pfad)) // Ordnerinhalt auslesen
{
    if (preg_match("/.(jpg|gif)$/i", $find))
    {
    $bild[$PicCODE] = "$bild_pfad/$find";
    $PicCODE++;
    }
}

Jetzt habe ich den Ordner Fotos mit vielen Unterordnern, z.B. eben fotoseins, fotoszwei usw.
Damit will ich eine Übersichtsliste aller Alben machen, ich schätze das müsste gehen, wenn man den Stammordner Fotos ausliest und für jeden gefundenen Unterordner einen Link zu diesem Album macht.

Nur WIE löse ich das????
ich habe noch nichts passendes im www gefunden...

Dann bräuchte ich nur noch eine Lösung, um eine Beschreibung jedes Albums zu ermöglichen (ev. in einer Textdatei, die ausgelesen wird??)

Ich hoffe ihr versteht halbwegs mein Problem!

Mfg,
schmichl

PS: Toll wäre es auch, wenn man ein Fotoalbum auch vor der Öffentlichkeit verstecken könnte, so dass das Script an einem Merkmal erkennt, dass der Ordner noch nicht freigegeben wurde.

  1. Moin!
    mit is_dir() lässt sich prüfen ob der ausgelesene dateiname ein ordner ist:

    if(is_dir($find)){
    echo "<a href='[dein link]'>";
    }

    du kannst alle nicht sichtbaren alben mit dem suffix _off versehen:

    album1
    album2_off

    if(substr($find,-4) != "_off"){
    echo "<a href='[dein link]'>";
    }

    album1 wird ausgegeben album2_off nicht.
    tschüssi
    ichen

    1. Hallo Ichen!

      Ich habe das jetzt einmal so probiert:

      $stammordner = "fotos/";
      $open_sto=opendir($stammordner);
      while ($ordner=readdir($open_sto))
      {
        if ($ordner!="." && $ordner!="..")
        {
        if(is_dir($ordner))
         {
         echo "$ordner<br>";
         }
        }
      }
      closedir($open_sto);

      Ich bekomme aber keinen Buchstaben zu sehen!
      Wenn ich als Stammordner einen Punkt verwende, bekomme ich den Ordner Fotos und die anderen zu sehen, aber das mit den Unterordnern innerhalb des Ordners fotos geht nicht....

      Was habe ich da falschgemacht????

      Mfg,
      schmichl

      1. Moin!
        man muss anscheinend den pfad vollständig angeben:

        <?php
        $stammordner = "fotos/";
        $open_sto  =opendir($stammordner);
        while ($ordner=readdir($open_sto))
        {
          if ($ordner != "." && $ordner != "..")
          {
           if(is_dir($stammordner.$ordner)){
            echo $ordner."<br>";
           }
          }
        }
        closedir($open_sto);
        ?>

        also statt is_dir($ordner) - is_dir($stammordner.$ordner)

        tschüssi
        ichen

        1. Danke Ichen, es hat funktioniert!!!

          Noch eine allgemeine Frage:
          Wenn man mehrere Textfiles mit durchschnittlich ca. 10kb mit file() in ein Array einliest, ist das eine große Belastung für den Server bzw. werden die Ladezeiten dadurch länger???

          Ich will aus mehreren .txt-Datein nämlich immer jeweils die erste Zeile lesen.

          MfG,
          schmichl