Sortierung von Dateien in einem Ordner bei Ausgabe
martinli
- php
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> ";
$count++;
$bildcount++;
if($count == "6")
{
echo "</td></tr><tr><td height="110px">";
$count = 0;
}
}
echo "</td></tr></table>";
?>
Viele Grüße
Martin
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
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.
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.
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.
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.
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
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.
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
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.
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
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