zufallsbilder

N

netp

Mitglied
Thread Starter
Dabei seit
28.01.2005
Beiträge
32
Reaktionspunkte
0
hi,

ich möchte gern eine bilderleiste mit 6 bildern nebeneinander darstellen. das besondere soll sein, das die bilder im zufallsprinzip dargestellt werden. jedes mal wenn jemand auf die seite geht, werden 6 bilder aus einem ordner "leisten_bilder" gezogen und dargestellt.

hat jemand von euch schon mal soetwas geschrieben oder eine ahnung, wie soetwas zu scheiben ist? ich würde mich sehr über eure hilfe freuen.

danke
netp
 
kannst du PHP verwenden ?
 
ja, kann ich. ich habe alle möglichkeiten.
ich möchte aber versuchen keine datenbank zu verwenden ....
 
PHP:
<?php 
$ordner    =     "./images/";
$i         =     0;
$i2         =     0;
$action=opendir($ordner); 

while($datei=readdir($action)){ 
    if(!preg_match("!(\.|\..|\.DS_Store)$!", $datei)){ 
		$i++;
	}
}
$allimg= $i;

$rand1 = rand(0,$allimg);
$rand2 = rand(0,$allimg);
$rand3 = rand(0,$allimg);
$rand4 = rand(0,$allimg);
$rand5 = rand(0,$allimg);
$rand6 = rand(0,$allimg);

$action2=opendir($ordner); 

while($datei2=readdir($action2)){ 
    if(!preg_match("!(\.|\..|\.DS_Store)$!", $datei2)){ 
		if($i2 == $rand1 || $i2 == $rand2 || $i2 == $rand3 || $i2 == $rand4 || $i2 == $rand5 || $i2 == $rand6){
			echo "<img src=\"$ordner/$datei2\">";

		}
		$i2++;
	}
}


?>


pfuscherei ... aber funktioniert ... versuch morgen noch was gscheiteres
 
Ja, das geht übersichtlicher, aber der Weg ist schon der richtige.

Preliminaries:
Wir gehen mal davon aus das wir einen Ordner haben in dem 25 Bilder drin liegen. Die sind durchnummeriert (1.jpg, 2.jpg, 3.jpg, ..., 25.jpg).

Ziel ist es jetzt also, 6 zufällige Zahlen aus dem Bereich 1 bis 25 auszuwählen, ohne das eine Zahl doppelt vorkommt:
PHP:
<?php
function generate_numbers($min, $max, $anz)
{
     $array = range($min, $max);
     srand ((double)microtime()*1000000);
     for($x = 0; $x < $anz; $x++)
     {
          $i = rand(1, count($array))-1;
          $res[] = $array[$i];
          array_splice($array, $i, 1);
     }
     return $res;
}

// 6 eindeutige Zahlen im Bereich von 1 bis 25 ermitteln
$random = generate_numbers(1, 25, 6);

?>

Um das ganze jetzt auszugeben, einfach über $random iterieren:
PHP:
<?php
  for($i=0;$i<sizeof($random);$i++) {
    printf("<img src='/img/%s.jpg' alt='' />", $random[$i]);
  }
?>

Matt
 
Zuletzt bearbeitet:
vielen Dank für eure mühe. leider bin ich nicht so der php fachmann. wie binde ich das skript jetzt in die html-datei ein. die bilder liegen bis jetzt noch in einem tabellenrahmen, schön nebeneinander.
---
<table width="400" border="0">
<tr>
<th scope="col"><img src="file:///././././bild_1.jpg" width="80" height="80" /></th>
<th scope="col"><img src="file:///././././bild_2.jpg" width="80" height="80" /></th>
<th scope="col"><img src="file:///././././bild_3.jpg" width="80" height="80" /></th>
<th scope="col"><img src="file:///././././bild_4.jpg" width="80" height="80" /></th>
<th scope="col"><img src="file:///././././bild_5.jpg" width="80" height="80" /></th>
<th scope="col"><img src="file:///././././bild_6.jpg" width="80" height="80" /></th>
</tr>
</table>
---
vielen dank im vorraus für die antworten
lg
netp
 
du nimmst das script von ihm und baust das dann so in deine tabelle ein :

HTML:
<table width="400" border="0">
<tr>
<?php 
  for($i=0;$i<sizeof($random);$++) { 
    printf("<th scope="col"><img src="/img/%s.jpg" alt="" /></th>", $random[$i]); 
  } 
?>
</tr>
</table>
 
Ich hab mal eben noch den Fehler aus meinem obigen Beispiel rausgenommen (die " innerhalb des printf würden zum parse error führen).
HTML:
<table width="400" border="0">
<tr>
<?php 
  for($i=0;$i<sizeof($random);$i++) { 
    printf("<th scope='col'><img src='/img/%s.jpg' alt='' /></th>", $random[$i]); 
  } 
?>
</tr>
</table>

Für was du aber für das horizontale Platzieren von Bildern eine Tabelle brauchst ist mir absolut schleierhaft...

Matt
 
Relativ wichtig ist noch, dass Du deine HTMl-Dateiendung (.htm, .html) nach .php unbenennst. Sonst funktioniert nichts. :)
 
msslovi0 ohne PHP auto formatierung highligting ... überseh ich sowas imma
 
Ja, das ging mir ähnlich. ein $i hatte ich auch noch vergessen ;-)

Matt
 
danke danke, sehr nett von euch.
die seite ist im tabellenlayout erstellt und die bilder sind mittels der tabelle im oberen teil eingepasst -> daher die tabelle.

lg
alex
 
Zurück
Oben Unten