Ankündigung

Einklappen
Keine Ankündigung bisher.

Zufalls bilder

Einklappen

Neue Werbung 2019

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

  • Zufalls bilder

    Hey und guten Abend.
    Ich habe da mal wieder ein Problem und zwar es geht um die Zufällige Bilder Wiedergabe aus einem Ordner. Leider sind die bilder alle in verschiedenen Größen. Ich habe den ganzen Tag schon damit verbracht zu Googeln aber ich finde nur scripte ohne Größen angeben. Jetzt frage ich euch einfach mal vielleicht könnt ihr mir ja weiter helfen.

    Ich habe schon das Script gefunden und es läuft auch nur ich weiß nicht wo ich die Größe angeben kann weil mir egal wo ich es einsetze ein Fehler angezeigt wird.

    PHP-Code:
    <?php 
    $dir 
    "test"
    $do opendir($dir); 
    while (
    false !== ($file readdir($do))){ 
        if (!
    preg_match("/^\.{1,2}$/",$file)) { 
            
    $myfile[] = $file
        } 

    closedir($do); 
    $rand array_rand($myfile,1); 
    echo 
    "<img src=\"".$dir."/".$myfile[$rand]."\">"
    ?>


  • #2
    Wir reden von Dimensionen - width und height, richtig?

    Möchtest du die auslesen oder einfach allen Bildern bestimmte maximale Dimensionen zuweisen?
    Letzteres geht am besten mit CSS:
    Code:
    img { max-width: 100px; max-height: 100px }
    Für ersteres gibt es getimagesize().

    Kommentar


    • #3
      zu schön um war zu sein aber es klappt nicht kann ich das nicht im echo definieren?
      oder habe ich die class an die falsche stelle gesetzt.
      Es geht darum das die Bilder die ich ausgeben will alle auf 250x 200 ausgegeben werden soll.
      Da die Bilder größer sind und ich die nicht alle verkleinern kann weil ich die noch woanders brauche wäre es toll wenn
      die an der stelle alle auf die Maße ausgegeben werden.

      PHP-Code:
      <div class="img">
      <?php 
      $dir 
      "Spiel/images"
      $do opendir($dir); 
      while (
      false !== ($file readdir($do))){ 
          if (!
      preg_match("/^\.{1,2}$/",$file)) { 
              
      $myfile[] = $file
          } 

      closedir($do); 
      $rand array_rand($myfile,1); 
      echo 
      "<img src=\"".$dir."/".$myfile[$rand]."\">"
      ?>
      </div>

      Kommentar


      • #4
        Es geht darum das die Bilder die ich ausgeben will alle auf 250x 200 ausgegeben werden soll.
        Da die Bilder größer sind und ich die nicht alle verkleinern kann weil ich die noch woanders brauche wäre es toll wenn die an der stelle alle auf die Maße ausgegeben werden.
        CSS, wurde bereits gesagt!
        zu schön um war zu sein aber es klappt nicht kann ich das nicht im echo definieren?
        oder habe ich die class an die falsche stelle gesetzt.
        Wo hast Du die überhaupt gesetzt?!

        btw.:
        PHP-Code:
        // alle Einträge mit bestimmtem Muster aus Verzeichnis
        $itDirectory = new RecursiveDirectoryIterator'Spiel/images/' );
        $itIterator = new RecursiveIteratorIterator$itDirectory );
        $itRegex = new RegexIterator$itIterator'/^\.{1,2}$/i'RecursiveRegexIterator::GET_MATCH); 
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Zitat von Arne Drews Beitrag anzeigen
          in der der Div habe ich eine class geschrieben mit dem namen img
          die CSS wollt ich jetzt nicht noch einmal aufschreiben weil ich das kopiert hatte. Habe ich die class vielleicht an der falschen stellen gesetzt?

          Was kann ich denn jetzt damit anfangen ?
          Ich weiß ja was in den Ordner drin ist der ist extra für diese Bilder angelegt.
          Also gefiltert muss da jetzt nichts werden weil das alles .png bilder sind
          PHP-Code:
          // alle Einträge mit bestimmtem Muster aus Verzeichnis
          $itDirectory = new RecursiveDirectoryIterator'Spiel/images/' );
          $itIterator = new RecursiveIteratorIterator$itDirectory );
          $itRegex = new RegexIterator$itIterator'/^\.{1,2}$/i'RecursiveRegexIterator::GET_MATCH); 
          P.S. vielleicht bekomme ich auch eine Ordentliche Antwort und nicht solch eine genervten ich weiß ihr könnt das alle und ihr liest solche beiträge jeden Tag dennoch ist das doch ein Forum wo man nach Hilfe fragen darf oder etwa nicht.

          Kommentar


          • #6
            Die erste Antwort von monolith sollte bereits ins schwarze getroffen haben. Anstatt das du uns aber zeigst, wie du versuchst hast den Tipp umzusetzen, kommst du mit "hat nicht funktioniert". Die Sache ist aber: Es funktioniert. Wenn man es richtig macht. Und wenn du nicht zeigst wie du es falsch gemacht hast, dann werden wir das Problem nie beheben.

            Kommentar


            • #7
              Zitat von Tropi Beitrag anzeigen
              Die erste Antwort von monolith sollte bereits ins schwarze getroffen haben. Anstatt das du uns aber zeigst, wie du versuchst hast den Tipp umzusetzen, kommst du mit "hat nicht funktioniert". Die Sache ist aber: Es funktioniert. Wenn man es richtig macht. Und wenn du nicht zeigst wie du es falsch gemacht hast, dann werden wir das Problem nie beheben.
              Ich habe ihm doch geantwortet und auch gleich das geänderte Script dazu geschrieben.
              Könnte es vielleicht sein das ihr kein unterschied auf dem ersten blick gesehen habt weil ihr auf die DIV nicht geachtet habt?
              Bei mein ersten Code am anfang habe ich nur das Script geschrieben.
              und beim 2. habe ich das Script in eine DIV geschrieben weil ich sonst nicht so recht weiß wie ich das sonst mit CSS verbinden kann. Hier noch einmal so sieht das Script jetzt aus.

              PHP-Code:
              <div class="img">
              <?php 
              $dir 
              "Spiel/images"
              $do opendir($dir); 
              while (
              false !== ($file readdir($do))){ 
                  if (!
              preg_match("/^\.{1,2}$/",$file)) { 
                      
              $myfile[] = $file
                  } 

              closedir($do); 
              $rand array_rand($myfile,1); 
              echo 
              "<img src=\"".$dir."/".$myfile[$rand]."\">"
              ?>
              </div>
              und so die zuweisung in der CSS

              PHP-Code:
              .img max-width100pxmax-height100px 
              .

              Kommentar


              • #8
                Gut! Eine Klasse zu nutzen ist der richtige Weg.

                Allerdings mit dem Selektor .img sprichst du genau das div an - denn das hat ja die Klasse img - und nicht die Bilder. Du musst den Selektor noch erweitern oder du könntest die Klasse img auch direkt den Bildern zuweisen anstatt dem div.

                Kommentar


                • #9
                  Zitat von monolith Beitrag anzeigen
                  Gut! Eine Klasse zu nutzen ist der richtige Weg.

                  Allerdings mit dem Selektor .img sprichst du genau das div an - denn das hat ja die Klasse img - und nicht die Bilder. Du musst den Selektor noch erweitern oder du könntest die Klasse img auch direkt den Bildern zuweisen anstatt dem div.
                  und wie mach ich das?
                  ich kenne nur die lösung über die div.
                  aber wie ich die class jetzt in das php bringe da stehe ich auf dem trockenen.
                  könntest du mir vielleicht ein beispiel schreiben?

                  Kommentar


                  • #10
                    Ok ich nehme alles zurück ich habe es hinbekommen .
                    kann ich in das Script vielleicht auch angeben wieviel bilder gezeigt werden? Oder muss ich das kopieren so oft wie ich es brauche?
                    In diesem Fall wäre es sogar egal ob das Bild doppelt erscheint oder nicht.

                    Kommentar


                    • #11
                      Vielleicht so?
                      PHP-Code:
                      $counter 0;
                      while (
                      false !== ($file readdir($do))){  
                          if (
                      $counter++ = 10) break;
                          if (!
                      preg_match("/^\.{1,2}$/",$file)) {  
                              
                      $myfile[] = $file;  
                          }  

                      Kommentar


                      • #12
                        Mit der Variante aus #4 holst Du Dir 10 zufällige einfach mit:
                        PHP-Code:
                        $aRandomImages array_rand$itRegex10 ); 
                        und die kannst'e dann bequem anzeigen:
                        PHP-Code:
                        foreach ( $aRandomImages as $index ) {

                            echo 
                        '<img src="' $itRegex[$index] . '" alt="" />';


                        evtl. müsste der Pfad von $itRegex[$index] noch angepasst werden, hab's nicht getestet.
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar

                        Lädt...
                        X