• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bildergalerie mit readdir

kayze

Neues Mitglied
Hallo liebe Community,

ich habe mit HTML, CSS und PHP eine Bildergalerie erstellt. Diese ist Teil meines CMS.
Code:
$path = "../img/";
$dir = opendir($path);
$extensions = array("jpg", "bmp", "gif", "jpeg", "png");
while(($file = readdir($dir)) !== false) {
    if(in_array(pathinfo($file, PATHINFO_EXTENSION), $extensions)) {
    echo "<div style='background-image:url(".$path.$file.")' class='IMGS'></div>";
Die Ausgabe ist dann ein 3-Spalten-Grid-Layout.

Hier mein Anliegen: Ich möchte das Layout anpassen, wenn die Anzahl der Bilder im Ordner beispielsweise 5 beträgt. Die Bilder sollen dann anders angeordnet werden.

Vorher (5 Bilder)
33.333333% | 33.333333% | 33.333333%
33.333333% | 33.333333%

Nachher (5 Bilder)
33.333333% | 33.333333% | 33.333333%
50% | 50%

Habe aber leider keine Idee, wie ich das anstellen soll. :confused:
Edit: Das gilt dann auch für jede andere mögliche Anordnung bsp. auch

33.333333% | 33.333333% | 33.333333%
33.333333% | 33.333333% | 33.333333%
100%

bei 7 Bildern usw...


Vielen Dank im Voraus und einen schönen Abend! :)
 
Zuletzt bearbeitet:
Werbung:
Du musst mit dem Modulus Operator arbeiten.

PHP:
$rest = 5 % 3;

die 5 ist denn die Anzahl der Bilder und denn kannst du das Layout anpassen, wenn du einen Rest von 2 hast, machst du die letzte zeile mit
50 % | 50 %
und wenn du ein Rest von 1 hast dann die 100 %

EDIT:
Für etwas mehr OOP verwende doch diese Klasse um dateien aus einem Ordner auszulesen
http://us.php.net/manual/en/class.filesystemiterator.php

Ich denke mal @nookie wird auch zustimmen, dass dies die bessere Variante wäre ;)
 
Zuletzt bearbeitet:
Gibt es etwas mehr OOP? Entweder OOP oder Prozedural.

Und ja ich stimme dir zu. :p
 
Werbung:
Du musst mit dem Modulus Operator arbeiten.

PHP:
$rest = 5 % 3;

Oha!:eek: Das ist für mich neuland. Kann ich nicht einfach etwas simpler vorgehen und mir einfach in etwa folgendes ausgeben lassen?

Code:
if count files == 5 {
echo "file[1] = 33%";
echo "file[2] = 33%";
echo "file[3] = 33%";
echo "file[4] = 50%";
echo "file[5] = 50%";
}

Dazu müsste ich dann allerdings den Gesamten Pfad ausgeben und nicht immer nur einen Buchstaben aus dem Array des jeweiligen Dateinamens...
 
Was ist denn daran schwer? Hast du nicht in der Schule "Division mit Rest" gelernt?

5 % (modulo) 3 = 2 (Rest)
8 % 3 = 2 (Rest)
usw.
 
Werbung:
Zurück
Oben