Ankündigung

Einklappen
Keine Ankündigung bisher.

zufallsbild aus ordner erzeugen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • zufallsbild aus ordner erzeugen

    hallo alle zusammen!

    ich würde gerne ein zufallsbild aus einem bestimmten ordner ausgeben!
    jedoch bekomme ich bisher nicht das richtige ergebniss!

    weiss jmd. wo der fehler liegen könnte?

    Code:
    <?php
    
    $handle=opendir('bilder/'); 
    while ($file = readdir ($handle)) { 
    
    
    $bilder=array("$file");
    mt_srand ((double)microtime()*1000000);
    $zahl = mt_rand(0,(count($bilder) - 1));
    
    echo "<img src=\"bilder/".$bilder[$zahl]."\">";
    
    }
    
    closedir($handle);
    
    ?>
    vielen dank!

    lg!

  • #2
    Willst Du nicht vielleicht auch verraten, was Du kriegst, wenn es schon "nicht das richtig Ergebnis" ist?

    Erscheint jemand an der Tür und will Dir ein Zeitschriftenabo andrehen?
    Wird einfach ein falsches Bild angezeigt?
    Läuft Deine Freundin sofort weg?
    Wird gar kein Bild angezeigt?
    Geht die Welt unter?

    Wenn Du nicht sagst, wie sich ein Fehler äußert, ist es schwer, Dir zu helfen. Da les ich den Code gar nicht mehr genau durch.

    Möglicherweise willst Du aber mal
    $bilder = array(...)
    ersetzen durch
    $bilder[] = ...
    **********************************
    Nein, ich bin nicht die Signatur.
    Ich putze hier nur.
    **********************************

    Kommentar


    • #3
      $bilder=array($file);
      Weist $bilder in jedem Durchgang ein Feld mit einem Element zu. Du willst aber insgesamt ein Feld mit allen Namen.

      opendir/readdir funktioniert zwar, aber wenn Du alle Dateinamen als Feld haben willst, gibt es mittlerweile einfachere Wege.
      Ebenso für das "Aussuchen" eines Feldelements.
      PHP-Code:
      <?php
      $dateinamen 
      glob('*'); 
      $index array_rand($dateinamen); // seit php 4.2 kein srand/mt_srand mehr notwendig

      echo '[img]bilder/'$dateinamen[$index], '[/img]';
      ?>

      Kommentar


      • #4
        Re: zufallsbild aus ordner erzeugen

        Endlich mal jemand der schon selbst was erarbeitet hat.

        Du machst mehrere Fehler. Du überschreibst in der while-Schleife $bilder immer mit einem array in dem nur ein Element steckt.

        Außerdem führst du schon innerhalb der while-Schleife den Zufallsgenerator an, das macht keinen Sinn. Du mußt zuerst den Ordner auslesen und danach die Zufallszahl berechnen.

        Kommentar


        • #5
          hab noch kurz was editiert an meinem php code!

          naja er wirft mir eigentlich alle bilder untereinander aus! das sollte natürlich nicht so sein.

          @bruchpilot: liest er mir mit glob den pfad aus den ich angebe?

          @zergling: meinnst du so?

          Code:
          <?php 
          
          $handle=opendir('bilder/'); 
          while ($file = readdir ($handle)) { 
          
          } 
          
          closedir($handle); 
          
          $bilder=array("$file"); 
          mt_srand ((double)microtime()*1000000); 
          $zahl = mt_rand(0,(count($bilder) - 1)); 
          
          echo "<img src=\"bilder/".$bilder[$zahl]."\">"; 
          
          ?>

          Kommentar


          • #6
            @bruchpilot: liest er mir mit glob den pfad aus den ich angebe?
            Könnte man ja einfach mal ausprobieren, oder?

            schau Dir einfach per print_r an, was glob('/eine/Pfad/angabe/*'); liefert.

            Eintrag im Onlinehandbuch dazu: http://de2.php.net/manual/en/function.glob.php

            Kommentar


            • #7
              Nein.

              PHP-Code:
              <?php
              ...
              $bilder=array();
              while (
              $file readdir ($handle)) {
                 
              $bilder[]=$file;

              ...
              ?>
              **********************************
              Nein, ich bin nicht die Signatur.
              Ich putze hier nur.
              **********************************

              Kommentar


              • #8
                Zitat von Der_Gerhard
                Nein.

                PHP-Code:
                <?php
                ...
                $bilder=array();
                while (
                $file readdir ($handle)) {
                   
                $bilder[]=$file;

                ...
                ?>
                Der_Gerhard hat Recht. Zusätzlich solltest du noch prüfen, ob $file != "." && $file != ".." ist.

                Kommentar


                • #9
                  hmm... funktioniert aber trotzdem noch nicht so ganz!

                  Kommentar


                  • #10
                    was heißt nicht so ganz? hast du den letzten beitrag von zergling gelesen?

                    mfg
                    Andi

                    Kommentar


                    • #11
                      Dann poste doch nochmal deinen Code & denk Schritt für Schritt nach was passiert.
                      Du scheinst offenbar hauptsächlich einfache Logik-Fehler zu machen.

                      Kommentar


                      • #12
                        ok, es funktioniert.

                        hier der komplette code:

                        Code:
                        <?php 
                        $handle=opendir('bilder/'); 
                        
                        $bilder=array(); 
                        while ($file = readdir ($handle)) {
                         if ($file != "." && $file != "..") {
                           $bilder[]=$file; 
                        }
                        }
                        
                        mt_srand ((double)microtime()*1000000);
                        $zahl = mt_rand(0,(count($bilder) - 1));
                        
                        echo "<img src=\"bilder/".$bilder[$zahl]."\">";
                        echo "$file";
                        
                        closedir($handle);
                        
                        ?>
                        test unter http://www.soullisten.de/test


                        es war tatsächlich nurnoch ein kleiner denkfehler meinerseits drin!

                        vielen dank!

                        Kommentar


                        • #13
                          Ihr seid aber gefährliche Gangster :wink:

                          Kommentar


                          • #14
                            ey das sind testbilder =))
                            uralt ok!?

                            da war ich noch 17!

                            Kommentar


                            • #15
                              und das eine war ein bandfoto

                              für den auftritt in bamberg - ich weiss das es nicht so der hit ist *g*

                              Kommentar

                              Lädt...
                              X