Ankündigung

Einklappen
Keine Ankündigung bisher.

Zufallsauswahl von Bildern mit php

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zufallsauswahl von Bildern mit php

    Hallo,

    ich suche eine Funktion mit der ich aus einem Pool an Bildern in einem Ordner auf dem Webserver per Zufall mir Hintergrundbilder in meine Seite integrieren kann.

    Hat jemand eine Idee?
    lg ePole

  • #2
    PHP-Code:
    $bilder = array();

    /*Verzeichnis auslesen und Bilder in $bilder packen*/

    $hintergrundbild $bilder[rand(0count($bilder) - 1)]; 

    Kommentar


    • #3
      PHP-Code:
      <?php 
      $folder
      =opendir("."); 
      while (
      $file readdir($folder)) 
      $names[count($names)] = $file
      closedir($folder);
      sort($names);
      $tempvar=0;
      for (
      $i=0;$names[$i];$i++){
      $ext=strtolower(substr($names[$i],-4));
      if (
      $ext==".jpg"||$ext==".gif"||$ext=="jpeg"||$ext==".png"){$names1[$tempvar]=$names[$i];$tempvar++;}
      }
      srand ((double) microtime() * 10000000);
      $rand_keys array_rand ($names12);
      $slika=$names1[$rand_keys[0]]; 
      $dimensions GetImageSize($slika); 
      if (isset(
      $HTTP_GET_VARS["pic"])){header ("Location: $slika");}
      else {echo 
      "<img src=\"$slika\" $dimensions[3]>";}
      ?>
      Kleines Beispiel. Über google wirst noch deutlich mehr finden.

      Wolf29

      @Dennis81: An die Möglichkeit hab ich jetzt gar nicht gedacht. Ist natürlich viel eleganter

      Kommentar


      • #4
        Vielen Dank, das wird mir helfen

        Kommentar


        • #5
          Zitat von dennis81 Beitrag anzeigen
          PHP-Code:
          $bilder = array();

          /*Verzeichnis auslesen und Bilder in $bilder packen*/

          $hintergrundbild $bilder[rand(0count($bilder) - 1)]; 
          ich habe es mal analog dazu versucht, aber da läuft irgendetwas schief. ich bekomme alles zwischen 1 und 3 angezeigt, aber die 4 nie. und manchmal wird sogar nichts ausgegeben. wo liegt hier der fehler?

          PHP-Code:
          $bilder = array(
                      
          '1' => '1',
                      
          '2' => '2',
                      
          '3' => '3',
                      
          '4' => '4');
                      
              
              
          $hintergrundbild $bilder[rand(0count($bilder) - 1)]; 
              echo 
          $hintergrundbild

          Kommentar


          • #6
            Weil dein Array bei Index 1 beginnt und du dir die Zahlen 0-3 generieren lässt...

            Kommentar


            • #7
              Probier mal den hier:
              PHP-Code:
              shuffle($bilder);
              echo 
              $bilder[0]; 

              Kommentar


              • #8
                Zitat von lstegelitz Beitrag anzeigen
                Weil dein Array bei Index 1 beginnt und du dir die Zahlen 0-3 generieren lässt...

                OK, das mit 0 habe ich verstanden, aber woran siehst du das ich bis drei generieren lasse?

                Kommentar


                • #9
                  PHP-Code:
                  rand(0count($bilder) - 1
                  Erzeugt eine Zufallszahl zwischen 0 und "Anzahl der Array-Elemente minus eins"

                  Kommentar


                  • #10
                    benutz doch einfach array_rand() um ein zufälliges Element aus dem Array zu ermitteln

                    Kommentar


                    • #11
                      Zitat von lstegelitz Beitrag anzeigen
                      PHP-Code:
                      rand(0count($bilder) - 1
                      Erzeugt eine Zufallszahl zwischen 0 und "Anzahl der Array-Elemente minus eins"
                      aaahhh...verstehe, das ist natürlich von mir dumm überlegt, denn ich hole mir das array aus meiner mysql db und wenn ich dort einen wert lösche wird alles verfälscht...hmmm

                      PHP-Code:
                      $abfrage "SELECT * FROM background";
                              
                      $ergebnis mysql_query($abfrage);
                              
                              
                      $bilder = array();
                              while (
                      $row mysql_fetch_array($ergebnis)) {
                              
                      $bilder[$row['id']] = $row['bg'];
                      }  
                          
                      $hintergrundbild $bilder[rand(2count($bilder) - 1)]; 

                          echo 
                      '<body background="data/bg/'; echo $hintergrundbild; echo '">'
                      kann ich soetwas irgendwie abfangen?

                      Kommentar


                      • #12
                        Hirn einschalten und selbst denken!

                        [MOD: Thread geschlossen]

                        Kommentar

                        Lädt...
                        X