3 willekeurige plaatje's weergeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Josef Zorgui

Josef Zorgui

08/11/2006 23:31:00
Quote Anchor link
Goedenavond,

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.
 
PHP hulp

PHP hulp

18/11/2024 22:49:57
 
Jan Koehoorn

Jan Koehoorn

08/11/2006 23:33:00
Quote Anchor link
Je zou een array kunnen maken met alle plaatjes uit de map. Daarna doe je:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    shuffle ($array);
?>
 
Josef Zorgui

Josef Zorgui

08/11/2006 23:34:00
Quote Anchor link
oke en hoe doe ik dat??? ja sorry ben nogal een beginner
 
Jurgen B

Jurgen B

08/11/2006 23:38:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?  
$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!
 
Kalle P

Kalle P

08/11/2006 23:38:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
?>


Is wat korter dan shuffle.

edit:

Oh 3 oke
Gewijzigd op 01/01/1970 01:00:00 door Kalle P
 
Jan Koehoorn

Jan Koehoorn

08/11/2006 23:39:00
Quote Anchor link
@ Kalle: die kan ook, maar in dit geval moet je dan als tweede parameter 3 opgeven, het aantal willekeurige elementen dat je wilt.
 
Kalle P

Kalle P

08/11/2006 23:40:00
Quote Anchor link
Ja toen ik ge-edit viel het me op.
Direct veranderd...
 
Jan Koehoorn

Jan Koehoorn

08/11/2006 23:46:00
Quote Anchor link
@ Jurgen: het kan een stuk korter:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 . '">';
        }
    }

?>

Edit:

foutje verbeterd
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Robert Deiman

Robert Deiman

08/11/2006 23:48:00
Quote Anchor link
Vraagje tussendoor over die eregi
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)) {
 
Jan Koehoorn

Jan Koehoorn

08/11/2006 23:49:00
Quote Anchor link
@ Robert: klopt :-)
 
Robert Deiman

Robert Deiman

08/11/2006 23:50:00
Quote Anchor link
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 ;)
 
Jan Koehoorn

Jan Koehoorn

08/11/2006 23:52:00
Quote Anchor link
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.
 
Robert Deiman

Robert Deiman

08/11/2006 23:55:00
Quote Anchor link
Dan wens ik je bij deze vast veel succes met de studie, volgens mij is er zoveel te vinden, en mogelijk met reguliere expressies, dat je voorlopig daarmee niet uitgestudeerd zal zijn.
Het is overigens wel een mooie uitdaging.. :)

(dit is mijn laatste oftopic post in dit topic)
 
Josef Zorgui

Josef Zorgui

09/11/2006 00:44:00
Quote Anchor link
dank jullie wel voor jullie hulp hij werkt
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.