3 willekeurige plaatje's weergeven
Ik ben op dit moment bezig met een website voor me stage alleen wil ik 3 willekeurige plaatjes selecteren uit een bepaalde map met meerdere plaatjes erin en ik weet helaas niet hoe dat moet zou iemand mij kunnen helpen.
oke en hoe doe ik dat??? ja sorry ben nogal een beginner
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?
$map = "./mapnaam/"; // De map van de plaatjes een . voor dezelfde map als waar dit bestand staat.
$dir = opendir($map);
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
//$rand = mt_rand(0, $aantal); <= edit na eerste post
//if (in_array($rand, $aantal)) {
// $rand2 = mt_rand(0, $aantal);
//}
// vier random unieke plaatjes
$randExists=array();
for ($i=0;$i<4;$i++) { //hier stond geen { ...
$rand = mt_rand(0, $aantal);
if(!array_key_exists($rand,$randExists)) { //hier stond geen ( en key_exist moet zijn array_key_exists ...
// $i--; foutje dat moet ie doen als ie wel in randExists zit
echo "<img class=\"samenwerkingenimg\" src=\"". $map . $afbeelding[$rand]."\"> " ;
$randExists[$rand]=$rand;
}
else {
$i--;
}
}
?>
$map = "./mapnaam/"; // De map van de plaatjes een . voor dezelfde map als waar dit bestand staat.
$dir = opendir($map);
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
//$rand = mt_rand(0, $aantal); <= edit na eerste post
//if (in_array($rand, $aantal)) {
// $rand2 = mt_rand(0, $aantal);
//}
// vier random unieke plaatjes
$randExists=array();
for ($i=0;$i<4;$i++) { //hier stond geen { ...
$rand = mt_rand(0, $aantal);
if(!array_key_exists($rand,$randExists)) { //hier stond geen ( en key_exist moet zijn array_key_exists ...
// $i--; foutje dat moet ie doen als ie wel in randExists zit
echo "<img class=\"samenwerkingenimg\" src=\"". $map . $afbeelding[$rand]."\"> " ;
$randExists[$rand]=$rand;
}
else {
$i--;
}
}
?>
Alsjeblieft!
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$src = array('plaatje1.jpg','plaatje2.jpg','plaatje3.jpg','nog meer plaatjes');
//Of uit je database...
echo array_rand($src,3);
?>
$src = array('plaatje1.jpg','plaatje2.jpg','plaatje3.jpg','nog meer plaatjes');
//Of uit je database...
echo array_rand($src,3);
?>
Is wat korter dan shuffle.
edit:
Oh 3 oke
Gewijzigd op 01/01/1970 01:00:00 door Kalle P
@ Kalle: die kan ook, maar in dit geval moet je dan als tweede parameter 3 opgeven, het aantal willekeurige elementen dat je wilt.
Direct veranderd...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
function get_images ($dir) {
if ($handle = opendir($dir)) {
$imgs = array ();
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if (eregi ('\.jpg|\.gif', $file)) {
array_push ($imgs, $file);
}
}
}
closedir($handle);
return $imgs;
}
return false;
}
$imgs = get_images ('images/');
if (is_array ($imgs)) {
$random = array_rand($imgs, 3);
foreach ($random as $value) {
echo '<img src="images/' . $value . '">';
}
}
?>
function get_images ($dir) {
if ($handle = opendir($dir)) {
$imgs = array ();
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if (eregi ('\.jpg|\.gif', $file)) {
array_push ($imgs, $file);
}
}
}
closedir($handle);
return $imgs;
}
return false;
}
$imgs = get_images ('images/');
if (is_array ($imgs)) {
$random = array_rand($imgs, 3);
foreach ($random as $value) {
echo '<img src="images/' . $value . '">';
}
}
?>
Edit:
foutje verbeterd
foutje verbeterd
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Dit teken | staat voor de or ofzo in de eregi? Zoals || or betekend in PHP?
Dus als ik dan .png ook nog toe wil voegen zou het dan zo worden?
if (eregi ('\.jpg|\.gif|\.png', $file)) {
@ Robert: klopt :-)
Jan Koehoorn schreef op 08.11.2006 23:49:
@ Robert: klopt :-)
Mooi, begin die reguliere expressies steeds beter te begrijpen. Ze zijn vaak erg handig ;)
Zeker, ze komen goed van pas. Ik wil er altijd nog eens echt studie van gaan maken. Ik weet wel het een en ander, maar nog lang niet alles van regexen.
Het is overigens wel een mooie uitdaging.. :)
(dit is mijn laatste oftopic post in dit topic)
dank jullie wel voor jullie hulp hij werkt