Problem mit Arry in Zufallsbild

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

  • Problem mit Arry in Zufallsbild

    Mein bisheriges Zufallsbild wurde immer aus einem arry ausgewählt.
    Da im Arry aber zu wenig Bilder angegeben sind, wiederholen sich die Bilder sehr oft.

    Ich habe daran gedacht, alle Verzeichnisse(galerien) in ein Array zu schreiben, per zufall daraus eine Galerie zu wählen und alle Dateien aus dem Ordner Thumbnails der Gallerie in ein neues Array zu legen, aus dem dann zufällig das Bild gewählt wird.

    Ordnerstruktur:

    root
    galerien
    name
    thumbnails

    Code:
    <?php
    //alle Verzeichnisse in Array
    $dir=opendir("galerien/");
            while ($file = readdir($dir)) {
              if (is_dir($file) && $file!="." && $file!="..") {
                  $dirs[] = $file;
              }
            }
    //zufällige Galerie auswählen       
    mt_srand ((double)microtime()*1000000);
    $galerie = mt_rand(0,(count($dirs) - 1));
    
    //print_r($dirs);
    
    
    $Pfad= $dirs[$galerie]."thumbnails/";  
      $i = 0;                //Zaehler $i wird auf 0 gesetzt
      $dateien = array();    //Die Variable $dateien wird als Array deklariert
    
      if($Verzeichniszeiger=opendir($Pfad)) {
        while($Datei=readdir($Verzeichniszeiger)) {
          if ($Datei!=".")                            continue;
          if ($Datei!="..")                          continue;
          if (is_dir($Pfad.DIRECTORY_SEPARATOR.$Datei))         continue;
          if(eregi(".jpg$|.jpeg$",$Datei) == false)  continue;
       
          echo $i;
          $dateien[$i++] = $Datei;
          //... wenn ja, Datei in Array dateien schreiben
          //Zaehler $i um 1 erhöhen
        }
        closedir($Verzeichniszeiger);
      }
      ?>
    Das Problem besteht darin, dass das Array in das die Ordnernamen der Galerien geschrieben werden sollte leer bleibt!
    Weiß jemand Abhilfe?

  • #2
    Re: Problem mit Arry in Zufallsbild

    schau dir mal scandir an!
    Anhand der Daten im array kannst du dann zb. dein zufallsbild generieren etc.


    Sers
    Der Boris

    Kommentar


    • #3
      die funktion scandir() scheint nur in PHP5 enthalten zu sein..
      Habe auf meinem Space nur PHP 4.4.1

      es sollte ja auch ohne scandir funktionieren..
      ich verstehe nur nicht, warum das array leer bleibt

      Kommentar


      • #4
        Original geschrieben von KoenigKarsten
        weil du in die if abfrage is_dir($file) drinnen hast, das musst du extra abfragen!

        check mal das:
        PHP-Code:
        $handle opendir('./bilder');
        while (
        $file readdir ($handle))
        {
            if (
        $file!="." && $file!="..")
            {
                if (!
        is_dir($file))
                {
                        
        $datei[] = $file.'<br/>';
                }
            }
        }

        closedir($handle);
        echo 
        '<pre>';
        print_r($datei); 
        PS: Genauso gehst du auch bei dem unteren teil vor!

        PHP-Code:
              $Pfad"./bilder";
              
        $i 0;                //Zaehler $i wird auf 0 gesetzt
              
        $dateien = array();    //Die Variable $dateien wird als Array deklariert
              
        echo '<pre>';
              if(
        $handle opendir($Pfad))
              {
                while(
        $file readdir($handle))
                {
                    if (
        $file!="." && $file!="..")
                    {
                        if (!
        is_dir($file))
                        {
                            
        $end explode("."$file);
                            if(
        $end[1] == 'jpg' || 'gif' || 'jpg' || 'png')
                            {
                                
        $dateien[$i++] = $file;
                            }
                        }
                    }
                }
                
        closedir($handle);
              }
              
        print_r($dateien); 
        Sers
        Der Boris
        Zuletzt geändert von boris-schneider; 26.04.2006, 19:18.

        Kommentar


        • #5
          ja hat nach kleinen änderungen damit funktioniert
          ich danke dir vielmals

          warum mussten die if-entscheidungen verschachtelt werden?
          möchte es ja auch verstehen
          fange gerade erst an

          Kommentar


          • #6
            Original geschrieben von KoenigKarsten
            warum mussten die if-entscheidungen verschachtelt werden?
            möchte es ja auch verstehen
            fange gerade erst an
            Ich habe es mal so gemacht damit du als Anfänger den ablauf besser vestehst, ich könnte auch alles in funktionen packen oder anders abfragen etc. aber wenn du gerade erst anfängst ist es sinnvoll zu verstehen wie sich alles stück für stück abarbeitet


            Sers
            Der Boris

            Kommentar

            Lädt...
            X