4 erste bilder aus ordner ausgeben

Hallo.
Ich biete auf meiner Webseite selbst erstellte Bildschirmhintergründe an. Webseite (http://ninovdl.de.tc/?site=wallpapers).
Die Thumbnails werden in einen Ordner (/thumbs) gespeichert.
Mit diesen Script kann ich alle Bilder aus diesen Ordner ausgeben:

 Bildschirmhintergründe: (Zum Downloaden anklicken) 
<?php $dir = opendir("wallpapers/thumb"); <br />$extensions = array("jpg", "jpeg"); 
$i = 0;
while(($file = readdir($dir)) !== false){ 
 if(in\_array(pathinfo($file, PATHINFO\_EXTENSION), $extensions)) {
 $did = str\_replace(".jpg", "", $file);
 $did = str\_replace(".jpeg", "", $did);
 $i++;
 echo "[&nbsp;"; if (($i%2)==0) { echo ""; } } }?\>](?site=bgdown&id=%24did)

Jetzt möchte ich, das nur die ersten 4 Bilder (wenn möglich nach Name sortiert) auf der Seite erscheinen. Dadrunter sollen dann eben Links zu Seite 2, 3, 4… sein.

Weis jemand hier wie das geht?
mfG, Nino

Hi,

also ich habe es jetzt nicht selbst ausprobiert aber ich denke es müsste so funktionieren:

Bildschirmhintergründe: (Zum Downloaden anklicken)

<?php $dir = opendir("wallpapers/thumb");
$extensions = array("jpg", "jpeg"); $i = 0; while(($file = readdir($dir)) !== false && $i if(in\_array(pathinfo($file, PATHINFO\_EXTENSION), $extensions)) { $did = str\_replace(".jpg", "", $file); $did = str\_replace(".jpeg", "", $did); $i++; echo "["; if (($i%2)==0) { echo ""; } } }?\>](?site=bgdown&id=%24did)

Bildschirmhintergründe: (Zum Downloaden anklicken)

<?php :blush:dir = opendir("wallpapers/thumb");
$extensions = array("jpg", "jpeg"); $i = 0; while(($file = readdir($dir)) !== false && $i if(in\_array(pathinfo($file, PATHINFO\_EXTENSION), $extensions)) { $did = str\_replace(".jpg", "", $file); $did = str\_replace(".jpeg", "", $did); $i++; echo "["; if (($i%2)==0) { echo ""; } }}?\>](?site=bgdown&id=%24did)

da werden zwar nur die ersten 4 bilder angezeigt, aber ich will unten dann noch so eine Zeile:
Seite: [1] [2] [3]
bei Seite 1 eben nur die ersten 4 Bilder, bei Seite zwei die nächsten 4…

mfg, Nino

Hallo,

okay dann funktioniert das natürlich nicht. Wenn ich dir ein Script „zuschneiden“ soll brauche ich aber ein bisschen mehr Informationen.

Soll wenn duauf die nächste Seite klickst ein neues Dokument aufgerufen werden also zb bilder1.php > bilder2.php oder soll alles in bilder1.php ablaufen?
Wenn ja könnten wir hier Javascript ganz gut gebrauchen das macht die Sache etwas dynamischer. Meine zweite frage ist wie du die bilder benannt hast. Hast du imemr unterschiedliche namen oder sowas wie bild_1,bild_2,bild_3??? Das würde die Sache nämlich einfacher machen.

also ich dachte das irgendwie mit GET anhängen also: ?seite=2 für seite 2 und ?seite=3 für seite 3… muss doch irgendwie gehen…

die Bilder werden immer mit php hochgeladen und benannt mit time().
Aber theoretisch könnte ich sie umbennen in 1.jpg, 2.jpg … und dass dann auch beim hochladen erstellen.

mfg,nino

Ja genau mit GET geht das. Nur wenn du dann dann zwischen den Seiten wechselst lädt die Seite neu. Deswegen hätte man das auch mit Javascript machen können um das zu umgehen.
Aber so würd ichs mit GET machen:

<?php $seite = $_GET["seite"];
if($seite == "") $seite = 1; $x = $seite\*4; for($i = $x-3; $i { echo ":smile:
1 Like

Danke!
Es hat funktioniert!
Ich habe das Script noch etwas verändert:

<?php function countdata($dir) { // Funktion um die Anzahl der Dateien in einem Ordner auszugeben<br /> $handle = opendir($dir);
 $count = 0;
 while ($file = readdir ($handle)) { 
 if ($file != "." && $file != "..") { 
 $count++;
 } 
 }
 closedir($handle);
 return $count;
}
?\> 
 Bildschirmhintergründe: (Zum Downloaden anklicken) 
<?php $data = countdata("wallpapers/thumb") / 4;<br />$data = ceil($data);
echo "Seite: ";
$n = 0;
while ($data \> $n) {
 $n++;
 echo "[[$n]](?site=wallpaper&sid=%2524n)&nbsp;";
}
echo "
";
$seite = $\_GET["sid"];
if($seite == "") {
 $seite = 1;
}
$x = $seite \* 4;
for($i = $x-3; $i &nbsp;";
}
?\>

Damit wird oben automatisch die Seitenanzahl berrechnet und ausgegeben…

Und So siehts dann aus: http://ninovdl.de.tc/?site=wallpaper

mfG, Nino