Dateien aus Verzeichnis lesen, 3 nebeneinander, dann zeilenumbruch

rumblestilzchen

Grünschnabel
Hallo Leute!
Ich komm mit der Programmierung grade nicht weiter.
Ich will eine Bildergallery erzeugen, indem alle Dateien aus einem Verzeichnis ausgelesen werden. Anschließend sollen jeweils 3 Bilder nebeneinander positioniert werden, anschließend ein Zeilenumbruch, wieder 3 Bilder, etc.

Soll folgendrmaßen aussehen:
Bild 1 | Bild 2 | Bild 3
Bild 4 | Bild 5 | Bild 6
...

Zum Auslesen des Verzeichnisses benutze ich folgenden Code:
Code:
$ordner = "content/photos/$photo_adresse/thumbnails";
$photo_zeigen = "content/photos/$photo_adresse/images";
$handle = opendir($ordner);
while ($file = readdir ($handle))
{
  if($file != "." && $file != "..")
  {
     if(is_dir($ordner."/".$file))
     {
       echo "/".$file."<br/>";
     }
     else
     {
       $anzahl_dateien++;
        // kompletter Pfad
       $compl = $ordner."/".$file;
       $compl_photo_zeigen = $photo_zeigen."/".$file;
       echo "<img src='$compl'>";
     }
  }
}
echo "$anzahl_dateien Bilder sind vorhanden";
closedir($handle);

wie muss ich denn nun den Code abändern, dass er mir 3 nebeneinander stellt und anschließend einen Absatz einfügt?
 
Wenn ich Dich richtig verstanden habe, ist der Modulo-Operator Dein Werkzeug:
PHP:
$ordner = "content/photos/$photo_adresse/thumbnails";
$photo_zeigen = "content/photos/$photo_adresse/images";
$handle = opendir($ordner);
$i=0;
while ($file = readdir ($handle))
{
  if($file != "." && $file != "..")
  {
     if(is_dir($ordner."/".$file))
     {
       echo "/".$file."<br/>";
     }
     else
     {
       $anzahl_dateien++;
        // kompletter Pfad
       $compl = $ordner."/".$file;
       $compl_photo_zeigen = $photo_zeigen."/".$file;
       echo "<img src='$compl'>";
       $i++;
       if ($i%3==0) {
          echo "<br>";
       }
     }
  }
}
echo "$anzahl_dateien Bilder sind vorhanden";
closedir($handle);

EDIT: Um Gumbos Vorschlag mal zu berücksichtigen: Das hier beschreibt nur die programmiertechnische Umsetzung, alle 3 Elemente etwas "Besonderes" zu machen. Das Markup ist in der Tat nicht das Beste und wird durch ein br auch nicht schöner.

Gruß hpvw
 
Zuletzt bearbeitet:
mh, kann leider grad nicht ganz verstehen, was daran jetzt so schlecht ist?
habe es nun noch in einer tabelle verpackt und es ist genau das, was ich haben wollte!

wäre schön, wenn ihr mir noch beantworten könntet, was daran doch nicht so gut ist, will ja noch dazulernen :)

aber vielen vielen dank!
 
HTML ist eine Auszeichnungssprache und keine Darstellungs- oder Präsentationssprache. Demnach sind Tabellen zur Auszeichnung tabellarischen Daten gedacht, nicht zur darstellerischen Strukturierung.
 
Da kann man wieder mal die Klassiker aufführen:
Warum Layout mit Tabellen dumm ist: Probleme definiert, Lösungen angeboten
Throwing Tables Out the Window
In Kürze: Seiten, die semantisches Markup verwenden, sind auf allen Browsern betrachtbar/zugänglich, ohne seitliches scrollen, ohne Darstellungsfehler. (Zu einer semantisch strukturierten Seite gibt es keine Darstellungsfehler, da sie inhaltlich vollständig im Zweifelsfall als reiner Text, von jedem Browser wiedergegeben werden kann.) Zu diesen Browsern gehören unter anderem Handys, PDA's, Hörbrowser, Textbrowser. Dieser ganze WAP-Irrsinn und damit doppeltes Schreiben von Webseiten wäre überflüssig, wenn die Webdesigner sich auf semantisches Markup zurück besinnen würden.

Gruß hpvw
 
Zurück