schnipp: Bilder anzeigen in umgekehrter Reihenfolge?

Hallihallo,

ich habe ein kleines Script geschrieben, das die Bilder aus einem bestimmten Ordner auf meinem Server anzeigt:

  
<?php  
$dir = "downloads/images/$newcat/thumb/$number";  
  
if (is_dir($dir)) {  
   if ($dh = opendir($dir)) {  
       while (($file = readdir($dh)) !== false) {  
   $newfile = $file;  
      $newfile = eregi_replace(".jpg", "", $newfile);  
       if(substr_count($file, ".gif") ||  
              substr_count($file, ".png") ||  
              substr_count($file, ".jpg") ||  
              substr_count($file, ".bmp")) {  
                 echo "<a href=\"http://seite.de/images/$newcat/item$newfile\" target=\"_blank\" onclick=\"javascript:s4f('Images $newtitle2');\"><img src=\"http://seite/downloads/images/$newcat/thumb/$number/$file\n\" class=\"avaimage\" alt=\"$alt5\"></a>";  
       }  
  
       }  
       closedir($dh);  
   }  
}  
?>  

Funktioniert soweit auch alles gut, nur dass die Bilder in der Reihenfolge ausgegebn werden: Bild 1, Bild 2, Bild 3...

Gibt es eine Möglichkeit, dass die Bilder in umgekehrter Reihenfolge erscheinen? Sprich, dass die neusten Bilder ganz oben erscheinen: Bild 5, Bild 4...

Danke im Voraus!
schnipp

  1. Hallo

    <?php
    $dir = "downloads/images/$newcat/thumb/$number";

    if (is_dir($dir)) {
       if ($dh = opendir($dir)) {
           while (($file = readdir($dh)) !== false) {
       $newfile = $file;
          $newfile = eregi_replace(".jpg", "", $newfile);
           if(substr_count($file, ".gif") ||
                  substr_count($file, ".png") ||
                  substr_count($file, ".jpg") ||
                  substr_count($file, ".bmp")) {
                     echo "<a href="http://seite.de/images/$newcat/item$newfile" target="_blank" onclick="javascript:s4f('Images $newtitle2');"><img src="http://seite/downloads/images/$newcat/thumb/$number/$file\n" class="avaimage" alt="$alt5"></a>";
           }

    }
           closedir($dh);
       }
    }
    ?>

    
    >   
    > Funktioniert soweit auch alles gut, nur dass die Bilder in der Reihenfolge ausgegebn werden: Bild 1, Bild 2, Bild 3...  
    >   
    > Gibt es eine Möglichkeit, dass die Bilder in umgekehrter Reihenfolge erscheinen? Sprich, dass die neusten Bilder ganz oben erscheinen: Bild 5, Bild 4...  
      
    Ja, lass die Ausgabe weg. Was du direkt ausgibst, kannst du nicht mehr sortieren. Lösung: 1. baue dir in der Schleife ein Array mit den Informationen zu den Bildern zusammen, 2. sortiere es nachfolgend und 3. gebe es anschließend, z.B. wieder in einer Schleife, aus.  
      
    Tschö, Auge  
    
    -- 
    Die deutschen Interessen werden am Liechtenstein verteidigt.  
      
    [Veranstaltungsdatenbank Vdb 0.2](http://termindbase.auge8472.de/)
    
    1. Ja, lass die Ausgabe weg. Was du direkt ausgibst, kannst du nicht mehr sortieren. Lösung: 1. baue dir in der Schleife ein Array mit den Informationen zu den Bildern zusammen, 2. sortiere es nachfolgend und 3. gebe es anschließend, z.B. wieder in einer Schleife, aus.

      Tschö, Auge

      Okay, ich glaube ich weiß, was du meinst, aber mit meinen bisherigen PHP Kenntnissen fühle ich mich da etwas überfordert. Wo muss ich denn die while Schleife einbauen?

  2. Hello,

    hast Du Dir schon mal die Funktion glob() angeschaut?
    http://www.gnu.org/software/findutils/manual/html_node/find_html/Shell-Pattern-Matching.html

    und die Regeln für Shell Patterns
    http://www.gnu.org/software/findutils/manual/html_node/find_html/Shell-Pattern-Matching.html

    Die durch glob() erweitert werden:

    $_files = glob($dir.'/*.{gif,jpg,png}',GLOB_BRACE);

    würde schon fast alles erledigen, was Du willst.
    Mit der Arrayfunktion array_reverse() kannst Du dann das Array umdrehen.
    http://de.php.net/manual/en/function.array-reverse.php

    Und der Ordnung halber müsstest Du noch prüfen, ob eines der Elemente ein Link oder ein Directory ist. Wäre ja möglich, dass Du ein Directory

    /home/user/bilder/thomas.jpg

    genannt hast. Dann würde das natürlich auch das Muster erfüllen können.

    Und Du müsstest vielleicht schauen, ob die Objekte wirklich anzeigefähige Bilder sind, also ob sie lesbar sind UND einen Bildinhalt haben. Das kannst Du mit

    getimagesize() http://de.php.net/manual/en/function.getimagesize.php

    ganz gut besorgen.

    Dein Code würde dann also ungefähr so aussehen:

    [code lang=php]

    <?php

    $out = '';
        $dir = "downloads/images/newcat/thumb/number";

    $_files = glob($dir.'/*.{gif,png,jpg,bmp}',GLOB_BRACE);

    foreach ($_files as file)
        {
            $out .= "<p><img src="http://seite/$file"".
                    " class="avaimage" alt="$alt5"></p>";
        }

    echo $out;

    ?>

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de