Zufallsbilder für Gallery-Vorschau

radarin

Angesehenes Mitglied
Hallo zusammen
Ich möchte in meiner Gallery in der Listenansicht 5 zufällige Bilder als Vorschau zeigen:

CODE
// Inhalt der datei randompic.inc
$vn = $localdir;
$html_vn = $httpdir;

$barray = array(1,2,3,4,5);
$verzeichnis = opendir($vn."/");
while($file = readdir($verzeichnis)) {
$s = @getimagesize($vn."/".$file);
if(in_array($s[2], $barray))
$auswahl[] = $file;
}
mt_srand((double)microtime()*1000000);
$number = mt_rand(0,count($auswahl)-1);
closedir($verzeichnis);



if($randompic == 1){echo "<img src='".$html_vn.$auswahl[$number]."' width='".$maxwidthpre."' height='".$maxwidthpre."'>"; $firstpic = $auswahl[$number];}
if($randompic == 2){
if($auswahl[$number]==$firstpic){
include("randompic.inc");
}else{
echo "<img src='".$html_vn.$auswahl[$number]."' width='".$maxwidthpre."' height='".$maxwidthpre."'>"; $secondpic = $auswahl[$number];
}
}
if($randompic == 3){
if($auswahl[$number]==$firstpic OR $auswahl[$number]==$secondpic){
include("randompic.inc");
}else{
echo "<img src='".$html_vn.$auswahl[$number]."' width='".$maxwidthpre."' height='".$maxwidthpre."'>"; $thirdpic = $auswahl[$number];
}
}
if($randompic == 4){
if($auswahl[$number]==$firstpic OR $auswahl[$number]==$secondpic OR $auswahl[$number]==$thirdpic){
include("randompic.inc");
}else{
echo "<img src='".$html_vn.$auswahl[$number]."' width='".$maxwidthpre."' height='".$maxwidthpre."'>"; $fortypic = $auswahl[$number];
}
}
if($randompic == 5){
if($auswahl[$number]==$firstpic OR $auswahl[$number]==$secondpic OR $auswahl[$number]==$thirdpic OR $auswahl[$number]==$fortypic){
include("randompic.inc");
}else{
echo "<img src='".$html_vn.$auswahl[$number]."' width='".$maxwidthpre."' height='".$maxwidthpre."'>";
}
}





Beim ersten Verzeichnis funktioniert das bestens, aber alle folgenden Verzeichnisse bekommen über die Hälfte fehlerafte Bilder, also datenamen die gar nicht existieren.
Beim Aufbau der Liste mit den Galerien lade ich diesen Code nach jedem Verzeichnis und übergebe den neuen Verzeichnispfad. Trotzdem scheint es mir ein durcheinander zu geben. Hb auch schon versucht den Code dynamisch mit Nummern zu versehen, damit jede ariable bei der Verarbeitung einen eindeutigen namen hat. Wollte aber auch nicht funktionieren. Und leider bremmst die Funktion die Seite ziemlich. Gibt es vielleicht eine elegantere Lösung..?

Beispiel

Gruss René
 
Du liest doch alle Bilder bereits aus, wenn du diese Zahl hier: Altstadtlauf 2006 (97) ermittelst. Warum nimmst du nicht einfach 5 Zufallsbilder aus diesem Array (oder erweiterst diese Funktion entsprechend)?
So wie dus jetzt machst, liest du ein Verzeichnis 6mal aus. Zuerst um die darin enthaltenen Bilder zu ermitteln und dann noch 5mal um ein Zufallsbild zu finden.
 
ok, das hat was. trotzdem habe ich ab dem 2. verzeichis im Array falsche Inhalte, so wie es scheint vom Verzeichnis vorher. Kann ich das Array vor dem neuen Durchlauf komplett leeren?
 
Mit unset() kannst du Variablen leeren.
Aber ich würde das Script, das du oben gepostest hast, spülen und die andere, viel schnellere Variante coden.
ph34r.gif
 
jetzt funktioniert es perfekt. hab in der zählerfunktion 4 neue zeilen eingesetzt (globales Array definieren und bei jedem bild einen neuen eintrag hinzufügen) und die ausgabe mit array_rand benötigt auch nur 4 zeilen
danke für eure tips.

Smarte Bilder in der Gallery

nice weekend, rene
 
Zurück
Oben