kostenloser Webspace werbefrei: lima-city


Zufallsbilder dürfen sich nicht wiederholen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    safeyourface

    Kostenloser Webspace von safeyourface, auf Homepage erstellen warten

    safeyourface hat kostenlosen Webspace.

    Hallo nochmal.

    Ich habe einen Script, welches mir mehrere Zufallsbilder aus einem Ordner nebeneinander anzeigt.

    Hier ist mein Code:

    <?php
    /*********** Zufallsbild Nummer 1: ***********/
    
    //Ordner
    $ordner="images";
    
    //Bildtypen
    $typen= array("gif","jpg","jpeg","png");;
    
    //Bilder auslesen
    $verzeichnis = opendir($ordner);
    $bilder = array();
    while($datei = readdir($verzeichnis)) {
    
    //Dateiendung rausfiltern
    $datei_endung = substr( strrchr($datei,".") ,1);
    if(in_array($datei_endung, $typen)) {
    $bilder[] = $datei;
    }
    }
    //Verzeichnis schließen
    closedir($verzeichnis);
    
    //Zufälliges Bild aus Array suchen
    srand ((double) microtime() * 10000000);
    $key = array_rand($bilder);
    
    //Bildname ohne Dateiendung 
    $filename = "{$bilder[$key]}";
    $array_file = explode(".",$filename);
    
    
    //Bild ausgeben:
    echo '<img src="'.$ordner."/".$bilder[$key].'" alt="'.$array_file[0].'" width="94" height="94" title="'.$array_file[0].'">';
    
    ?>


    Und diesen Code benutze ich ein paar mal hintereinander, damit mehrere Zufallsbilder aus dem Ordner nebeneinander erscheinen.
    Wie kann ich das jetzt machen, dass sich keines der Bilder wiederholt? Könnt ihr mir helfen? Wenn es geht, ohne meinen Code großartig zu verändern. Wenn nicht, dann bin ich offen für neue Code Vorschläge.

    Gruß
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo safeyourface,

    wenn Du mit unset() das ausgewählte Bild aus dem Array löscht, dann kann es kein zweites mal ausgewählt werden:
    <?php
    /*********** Zufallsbild Nummer 1: ***********/
    
    //Ordner
    $ordner="images";
    
    //Bildtypen
    $typen= array("gif","jpg","jpeg","png");;
    
    //Bilder auslesen
    $verzeichnis = opendir($ordner);
    $bilder = array();
    while($datei = readdir($verzeichnis)) {
    
    //Dateiendung rausfiltern
    $datei_endung = substr( strrchr($datei,".") ,1);
    if(in_array($datei_endung, $typen)) {
    $bilder[] = $datei;
    }
    }
    //Verzeichnis schließen
    closedir($verzeichnis);
    
    //Zufälliges Bild aus Array suchen
    srand ((double) microtime() * 10000000);
    $key = array_rand($bilder);
    
    //Bildname ohne Dateiendung 
    $filename = "{$bilder[$key]}";
    $array_file = explode(".",$filename);
    unset($bilder[$key]); //ausgewähltes Bild aus dem Array löschen.
    
    
    //Bild ausgeben:
    echo '<img src="'.$ordner."/".$bilder[$key].'" alt="'.$array_file[0].'" width="94" height="94" title="'.$array_file[0].'">';
    
    // 2. Bild
    $key = array_rand($bilder);
    
    //Bildname ohne Dateiendung 
    $filename = "{$bilder[$key]}";
    $array_file = explode(".",$filename);
    unset($bilder[$key]); //ausgewähltes Bild aus dem Array löschen.
    
    
    //Bild ausgeben:
    echo '<img src="'.$ordner."/".$bilder[$key].'" alt="'.$array_file[0].'" width="94" height="94" title="'.$array_file[0].'">';
    
    // 3. Bild
    $key = array_rand($bilder);
    
    //Bildname ohne Dateiendung 
    $filename = "{$bilder[$key]}";
    $array_file = explode(".",$filename);
    unset($bilder[$key]); //ausgewähltes Bild aus dem Array löschen.
    
    
    //Bild ausgeben:
    echo '<img src="'.$ordner."/".$bilder[$key].'" alt="'.$array_file[0].'" width="94" height="94" title="'.$array_file[0].'">';
    
    ?>
  4. Autor dieses Themas

    safeyourface

    Kostenloser Webspace von safeyourface, auf Homepage erstellen warten

    safeyourface hat kostenlosen Webspace.

    Danke es hat geklappt. Nur ich muss dich verbessern:
    Das unset muss nach der Ausgabe stehen und nicht vorher.

    //Bild ausgeben:
    echo '<img src="'.$ordner."/".$bilder[$key].'" alt="Bild 1" height="40" width="40" title="'.$array_file[0].'">';
    unset($bilder[$key]);
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!