Readdir - Bilder sortier Problem

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

  • Readdir - Bilder sortier Problem

    Hallo Leute,

    ich habe ein kleines Problem.
    Readdir sortiert ja nun leider nicht nach der Reihenfolge.
    Bei meiner Bildergallerie werden dadurch die letzten Bilder einer Serie immer als erstes angezeigt. Das ist leider nicht so schön. Wie ist es mir möglich innerhalb dieser Funktion die Bilder der Reihenfolge nach sortieren zu lassen ?

    PHP-Code:

    function getImages ($path) {

        
    /* initialize counter */
        
    $i 0;

        
    /* search drawer for images and save their names */
        
    $drawer opendir($path);
        while (
    $filename readdir($drawer)) {

            
    $fileSuffix substr($filename, -4);

            
    /*
             * determine if file is an image by suffix
             * ignore thumbnail files (foothumb.foo)
             */
            
    if       ((($fileSuffix == ".jpg"
                     
                     
    || $fileSuffix == ".gif"
                     
    || $fileSuffix == ".png"))
                     && (
    substr($filename, -9, -4) != "thumb")) {

                
    $images[$i] = $filename;
                
    $i++;
                
            }
        }
    sort ($images);
        
    closedir($drawer);

        return 
    $images;

    Ich hoffe das mir jemand helfen kann.

    Vielen Dank und liebe Grüße

    Werner

  • #2
    sort und Co...

    Kommentar


    • #3
      Was soll den die Reihenfolge definieren ... ?!

      @TobiaZ: sort() ist in seinem Beispiel schon vorhanden ... !
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        @goth

        Die Reihenfolge soll vom Dateinamen ausgehen.
        Meine Digicam bennent die Bilder immer RIMG0001 .... RIMG0201 usw.

        Kommentar


        • #5
          und wie sieht das array aus, was du zurück bekommst?

          Kommentar


          • #6
            vielleicht postest du auch mal, wie du das array ausgibst.

            Kommentar


            • #7
              Die Reihenfolge soll vom Dateinamen ausgehen.
              OffTopic:
              SelfOrderingFileNames™, dass ich nicht früher daraufgekommen bin.


              p.s. sorry, gloomy sunday am starten, aber demnächst werd ich mich bessern.

              Kommentar


              • #8
                p.s. sorry, gloomy sunday am starten, aber demnächst werd ich mich bessern.
                OffTopic:
                Na, so langsam passt du dich ans Forum an! Wenn du jetzt noch unformatierte Beiträge ignorierst...

                Kommentar


                • #9
                  Ohjeh jetzt bin ich natürlich überfragt.

                  Also die getImages function wird dann wieder in dieser Funktion benutzt.

                  PHP-Code:

                  function showPictures($path$hor=3$vert=2$begin=0$x=150,
                                        
                  $y=112) {

                      
                  /* add '/' to path if neccessary */
                      
                  if (substr($path, -1) != "/") {
                          
                  $path $path "/";
                      }
                                      
                      
                  /* get images */
                      
                  $images getImages($path);

                      
                  /* check $hor, $vert, $begin, $x & $y for illegal values */
                      
                  $numberOfImages sizeOf($images);

                      if (
                  $hor <= 0) {
                          
                  $hor 3;
                      }
                      else {
                          
                  $hor min($hor$numberOfImages);
                      }

                      if (
                  $vert <= 0) {
                          
                  $vert 2;
                      }
                      else {
                          
                  $vert min($vert$numberOfImages);
                      }

                      if (
                  $begin 0) {
                          
                  $begin 0;
                      }
                      else {
                          if (
                  $begin $numberOfImages) {
                              
                  $begin $numberOfImages-1;
                          }
                      }

                      if (
                  $x 1) {
                          
                  $x 150;
                      }
                      if (
                  $y 1) {
                          
                  $y 112;
                      }

                      
                  /* generate the subtitles file if neccessary */
                      
                  if (!file_exists($path "subtitles.csv")) {
                          
                  generateSubtitles($path$images);
                      }

                      
                  /* get subtitles for images */
                      
                  $line file($path "subtitles.csv");
                      for (
                  $i 0$i sizeof($line); $i++) {
                          
                  $row explode(";"$line[$i]);
                          
                  $subtitles =
                                  
                  array_merge($subtitles, array($row[0] => $row[1]));
                      }

                      return 
                  outputHTML($path$images$hor$vert$begin,
                                                
                  $x$y$subtitles);

                  Kommentar


                  • #10
                    wenn dein einziges problem ist, dass die dateinamen innerhalb eines arrays irgendwie falsch sortiert werden, kannst du mit array_multisort() die sortierung umdrehen, sodass die "neusten" bilder deiner digicam vorne stehen.

                    Kommentar


                    • #11
                      @penizillin

                      das klingt für mich schonmal wirklich gut !

                      Ob Du mir bitte sagen kannst, wo genau ich den Befehl in der funtion einbauen muss ?

                      Danke, Werner

                      Kommentar


                      • #12
                        Wo bliebe da der Lerneffekt.

                        Wäre aber zunächst mal schön, wenn du deinen eigenen code verstehst...

                        Kommentar


                        • #13
                          @TobiaZ

                          naja der Lerneffekt bleibt vielleicht aus, dafür würde ich aus einer Depriphase rauskommen. Das beschäftigt mich schon länger aber es haut dabei halt nie hin :-(

                          Ähm das Script ist ja nicht von mir, das hat ein Freund geschrieben.

                          Bin halt nur total ratlos irgendwie :-(

                          Kommentar


                          • #14
                            Ähm das Script ist ja nicht von mir, das hat ein Freund geschrieben.
                            Naja, dann lass den das doch machen.

                            Ich hab irgendwie nicht das gefühl., als ob das forum dafür da wäre, anderen leuten ihre codes zu schreiben. dafür gibts agenturen und scriptkiddies.

                            Kommentar


                            • #15
                              Den kann man im mom leider nicht fragen.

                              Es war ja eigentlich auch nur eine Bitte bzw. Frage und keine "muss" Aufforderung. Ich weiss ja selbst das ich kein Profi bin und wollte mich daher lieber an solche wenden.
                              Es tut mir leid wenn ich in Dir ein solches Gefühl ausgelöst habe,
                              dass war nicht meine Absicht und ich entschuldige mich bei Dir.

                              @alle anderen

                              Falls es jemanden gibt der mir mit dem Codeproblem noch etwas weiterhelfen kann wäre es nett von demjenigen zu lesen.

                              Sollte es unter den Lesern eine sogenannte "Agentur" geben die mir lediglich die sortier routine bzw. die codeänderungen mitteilen könnte, bitte ich ebenfalls um Meldung. Ich wäre selbstverständlich auch bereit dafür zu bezahlen.

                              Grüße

                              Werner

                              Kommentar

                              Lädt...
                              X