martinli: Sortierung von Dateien in einem Ordner bei Ausgabe

Hallo,
Ich habe mir ein Foto Skript geschrieben, mit dem ich mir einfach alle Fotos in einem Ordner anzeigen kann. Leider werden die Fotos nicht in der Reihenfolge anzezeigt, in der sie im ordner liegen.
Die Dateien sehen beispielsweise so aus:
CRW_1111_RJ.JPG
Sprich, das einzige was wechselt ist die Zahl.
Leider werden die Fotos nicht der Zahlenfolge nach sortiert.
Wo liegt da der Fehler?
<?
$bilder = "0";
$verz=opendir ('.');
while ($file = readdir ($verz))
{
  if(strtolower(substr($file, -4)) == ".jpg")
   {
   $bilder++;

if(isset($bild))
      {
      array_push($bild,$file);
      }
    else
      {
      $bild = array($file);

}

//  echo "$file <br>";  //$file wird im Erfolgsfall ausgegeben
} }
closedir($verz);  $bildcount = 1;
$count = 0;
echo "<table border="0" cellspacing="0" cellpadding="0" align="center"><tr><td height="110px">";

ksort($bild);
  foreach($bild as $thebild)
  {
// <a href="view.php?idgiv=".$row->id."">
//$test = (substr($proatseite, -4));
//test = substr($proatseite, -4);
$test = substr($proatseite, 0, strlen($proatseite)-1);

echo "<a href="".$test."/viewe.php?pic=$bildcount"><img src="phpThumb.php?src=".$thebild."&w=100&h=100"  border="0"></a>&nbsp;";

$count++;
    $bildcount++;
if($count == "6")
{
  echo "</td></tr><tr><td height="110px">";
  $count = 0;
}

}
echo "</td></tr></table>";

?>

Viele Grüße
Martin

  1. Hi,

    Ich habe mir ein Foto Skript geschrieben, mit dem ich mir einfach alle Fotos in einem Ordner anzeigen kann. Leider werden die Fotos nicht in der Reihenfolge anzezeigt, in der sie im ordner liegen.

    doch, in genau der Reihenfolge, gemäß Definition des Filesystems.

    Leider werden die Fotos nicht der Zahlenfolge nach sortiert.
    Wo liegt da der Fehler?

    Du führst keine Sortierung durch.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Liebe Selfer,

    ksort($bild);

    Du verwendest ksort()? Ist $bild ein assoziatives Array? Wenn dem nicht so ist, dann hat Dein Array numerische Schlüssel, seine Elemente sind also durchnummeriert. Da hat dann ksort() keinen Sinn, da es die Nummerierung "sortieren" würde, was natürlich keine Veränderung bringt. Das Filesystem gibt Dir wahrscheinlich die Dateien in der Reihenfolge ihres Anlegens zurück, daher sind sie so "unsortiert". Was Du vielleicht suchst, ist sort()!

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Lieber martinli,

      ksort($bild);
      Du verwendest ksort()? Ist $bild ein assoziatives Array? Wenn dem nicht so ist, dann hat Dein Array numerische Schlüssel, seine Elemente sind also durchnummeriert. Da hat dann ksort() keinen Sinn, da es die Nummerierung "sortieren" würde, was natürlich keine Veränderung bringt. Das Filesystem gibt Dir wahrscheinlich die Dateien in der Reihenfolge ihres Anlegens zurück, daher sind sie so "unsortiert". Was Du vielleicht suchst, ist sort()!

      Natürlich musst Du das Ergebnis von sort($bild) auch verwerten, indem Du es einer Variablen zuordnest!
      $bild = sort($bild);

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

      1. Hi Felix,

        Subject: sorry, zu schnell geklickt

        Irgendwie kommt mir das bekannt vor ;-)

        https://forum.selfhtml.org/?t=109293&m=682485
        Author: Felix Riesterer
        Subject: sorry, zu früh abgeschickt :-(

        Ist jetzt hier die „gemeine Früh-Klick-ohne-Vorschaue-Nutz-oder-kontrolliere-abschick-Krankheit” ausgebrochen? ;-))

        MfG, Den*scnr*nis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        Die Definition des SelfCodes ist hier zu finden, es gibt auch einen Encoder.
        1. Lieber Dennis,

          Ist jetzt hier die „gemeine Früh-Klick-ohne-Vorschaue-Nutz-oder-kontrolliere-abschick-Krankheit” ausgebrochen? ;-))

          Ja... bin heute mit schlechtem Zielwasser unterwegs. Der Vorschau-Button liegt so verflixt nahe am Absenden-Button :-( Da klick ich halt schonmal daneben. *g*

          Liebe Grüße aus Ellwangen,

          Felix Riesterer.

          1. Hallo Felix.

            Der Vorschau-Button liegt so verflixt nahe am Absenden-Button :-( Da klick ich halt schonmal daneben. *g*

            Dann ist folgende Option sicher etwas für dich:

            Vorschau
              (•) Per Checkbox aktivieren
                  [x] Per default aktiv

            ;-)

            Gruß, Ashura

            --
            Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
            30 Days to becoming an Opera8 Lover -- Day 18: Bookmarks
            Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
            [Deshalb frei! - Argumente pro freie Software]
            1. Hi Ashura,

              Dann ist folgende Option sicher etwas für dich (...)

              Der Link geht aber noch genauer ;-)

              Ein

              input#formular-vorschau { margin-left:5em; }

              bein Inline-Styles sollte auch Abhilfe schaffen, eventuell direkt noch ein

              input#formular-rechtschreibung { margin-left:5em; }

              nachschieben ;-)

              MfG, Dennis.

              --
              Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
              Auf viele Fragen weiß auch Wikipedia eine Antwort.
              1. Hallo Dennis.

                Der Link geht aber noch genauer ;-)

                Ich hatte keine Lust, im Quellcode, oder in meiner Paneele nachzuschauen. ;-)

                Ein

                input#formular-vorschau { margin-left:5em; }

                bein Inline-Styles sollte auch Abhilfe schaffen, eventuell direkt noch ein

                input#formular-rechtschreibung { margin-left:5em; }

                nachschieben ;-)

                Oder ein input#formular-vorschau,input#formular-rechtschreibung{display:none;}.

                Wer _jetzt_ immer noch auf den falschen Button drückt, der benutzt entweder einen _sehr_ alten Browser, oder ihm ist einfach nicht zu helfen. ;-)

                Gruß, Ashura

                --
                Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
                30 Days to becoming an Opera8 Lover -- Day 18: Bookmarks
                Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
                [Deshalb frei! - Argumente pro freie Software]
                1. Hi Ashura,

                  Der Link geht aber noch genauer ;-)

                  Ich hatte keine Lust, im Quellcode, oder in meiner Paneele nachzuschauen. ;-)

                  Wer schaut schon in den Quellcode? Achso - ein Opera User! *scnr*
                  Na dann, ich brauchte in meinem geliebten Firefox nur auf Information -> Display Anchors zu klicken, schon wurden alle Anker angezeigt. ;-)

                  Oder ein input#formular-vorschau,input#formular-rechtschreibung{display:none;}.

                  Wer _jetzt_ immer noch auf den falschen Button drückt, der benutzt entweder einen _sehr_ alten Browser, oder ihm ist einfach nicht zu helfen. ;-)

                  Ich würde eher zu
                    input#formular-absenden {display:none;}
                    (Achtung, hab nicht kontrolliert, ob der Name stimmt)
                  tendieren, dann bleibt dir nichts als die Vorschau übrig. Und nachdem auf Vorschau geklickt hast, wird ja dein User-Style-Sheet (auch Inline Styles) nicht mehr eingebunden.

                  MfG, Dennis.

                  --
                  Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
                  That's life - Es gibt im Leben[tm] keine Zurück-Taste. (Fabian Transchel)
                  1. Hallo Dennis.

                    Ich hatte keine Lust, im Quellcode, oder in meiner Paneele nachzuschauen. ;-)

                    Wer schaut schon in den Quellcode? Achso - ein Opera User! *scnr*

                    Jahaa!!!!111elf! Was dagegen? ;-)

                    Na dann, ich brauchte in meinem geliebten Firefox nur auf Information -> Display Anchors zu klicken, schon wurden alle Anker angezeigt. ;-)

                    Ach was! Quelltext anzeigen lassen und durchsuchen ist 1337! ;-)

                    [...] Und nachdem auf Vorschau geklickt hast, wird ja dein User-Style-Sheet (auch Inline Styles) nicht mehr eingebunden.

                    Das finde ich zwar manches Mal bedauerlich, aber manches Mal auch ganz nützlich, um zu sehen, wie "die Anderen" das Forum sehen.

                    Gruß, Ashura

                    --
                    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
                    30 Days to becoming an Opera8 Lover -- Day 18: Bookmarks
                    Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
                    [Deshalb frei! - Argumente pro freie Software]
      2. Heißa, Felix,

        Natürlich musst Du das Ergebnis von sort($bild) auch verwerten, indem Du es einer Variablen zuordnest!
        $bild = sort($bild);

        Wohl zu wenig geschlafen in letzter Zeit? ;-)

        sort() hat keinerlei Rückgabe, es sortiert das als Parameter übergebene Array direkt. Hast doch das Manual selbst verlinkt. ;-)

        Caramba!
        Grüße aus Biberach Riss,
        Candid Dauth

        --
        „Tue niemals etwas ausschließlich weil es jemand anderer tut – auch wenn dieser unter deiner tiefsten Verehrung steht.“ | Mein SelfCode
        http://cdauth.de/