opendir/readdir nach Datum sortieren
dominik.at
- php
0 suit0 dominik.at0 suit
0 Der Martin
0 Kai3450 Der Martin
0 suit
Hallo zusamme, ich hab mir ein kleines script zusammen gebastelt, dass mir den inhalt eines ordners auflistet.
leider sortiert mir das script alles nach namen, ich hätte aber gerne eine sortierung nach datum, geht das??
THX schon mal
$default_dir = "./";
echo '<div id="link_div"><ul>' . "\r\n\t";
if(!($dp = opendir($default_dir))) die("kann $default_dir nicht oeffnen.");
while($file = readdir($dp))
{
if(is_dir($file))
{
continue;
}
else if($file != '.' && $file != '..')
{
echo '<li><a href="' . $file . ' " class="link_li" >' . date ("Y-m-d - H:i:s.", filemtime($file)) . '</a></li>' . "\r\n\t";
}
}
closedir($dp);
echo '</ul> </div>';
Hallo zusamme, ich hab mir ein kleines script zusammen gebastelt, dass mir den inhalt eines ordners auflistet.
leider sortiert mir das script alles nach namen, ich hätte aber gerne eine sortierung nach datum, geht das??
Schreib die gesammelten Informationen in ein assoziatives Array (inlusive Datum - welches meinst du überhaupt) - und sortiere nach diesem.
Fertig.
Hallo zusamme, ich hab mir ein kleines script zusammen gebastelt, dass mir den inhalt eines ordners auflistet.
leider sortiert mir das script alles nach namen, ich hätte aber gerne eine sortierung nach datum, geht das??
Schreib die gesammelten Informationen in ein assoziatives Array (inlusive Datum - welches meinst du überhaupt) - und sortiere nach diesem.
Fertig.
so weit bin ich mit php noch nicht..
ich mein das datum der letzen modifizierung (sollte filemtime sein)
aber wie ich einen assoziatives Array schreib, hab ich kP :-(
ich mein das datum der letzen modifizierung (sollte filemtime sein)
Gut dann dieses.
aber wie ich einen assoziatives Array schreib, hab ich kP :-(
Du kannst auch ein numerisches Array verwenden - nur mehrdimensional sollte es sein. Ein Assoziatives Array mit z.B. dem inode des Files als Schlüssel kann man aber ganz ordentlich und übersichtlich arbeiten.
Wie man mit Arrays umgeht, findest du in der PHP-Dokumentation.
http://php.net/manual/de/language.types.array.php
Im Prinzip musst du nur in der while-Schleife anstelle des echo ein ein array_push() einbauen und ein array befüllen.
Dieses array kannst du anschießend mit foreach durchlaufen und innerhalb dieser Schleife die Werte ausgeben - das Array kannst du vorher wie gewünscht sortieren.
Etwas ähnliches - nur ohne Modifikationsdatum, dafür aber als Baum - kannst du dir hier ansehen:
http://forum.de.selfhtml.org/archiv/2010/8/t200020/
Hallo,
Hallo zusamme, ich hab mir ein kleines script zusammen gebastelt, dass mir den inhalt eines ordners auflistet. leider sortiert mir das script alles nach namen
nein, das Script, das du vorstellst, sortiert überhaupt nicht. Es gibt die Einträge einfach in der Reihenfolge aus, wie sie im Verzeichnis vorliegen (was die heute üblichen Dateimanager leider gar nicht mehr als Option anbieten). Wenn das nach Namen sortiert wäre, ist das purer Zufall.
Ciao,
Martin
[latex]Mae govannen![/latex]
nein, das Script, das du vorstellst, sortiert überhaupt nicht. Es gibt die Einträge einfach in der Reihenfolge aus, wie sie im Verzeichnis vorliegen (was die heute üblichen Dateimanager leider gar nicht mehr als Option anbieten).
Wozu sollte das auch gut sein? Ich sortiere entweder nach Namen, Datum, Erweiterung oder whatever; aber wie die Dateien vom Dateisystem angelegt wurden, interessiert mich absolut nicht. Also: Grund?
Stur lächeln und winken, Männer!
Kai
Hallo,
Es gibt die Einträge einfach in der Reihenfolge aus, wie sie im Verzeichnis vorliegen (was die heute üblichen Dateimanager leider gar nicht mehr als Option anbieten).
Wozu sollte das auch gut sein?
Microoptimierung? Unnötiges Sortieren vermeiden? Einträge so anordnen, dass die am häufigsten verwendeten möglichst ganz oben stehen? - Nein, das wäre tatsächlich überzogen.
Ich sortiere entweder nach Namen, Datum, Erweiterung oder whatever
Ich sortiere sie fast ausschließlich nach Typ.
aber wie die Dateien vom Dateisystem angelegt wurden, interessiert mich absolut nicht. Also: Grund?
Ich möchte die Einträge in einem Verzeichnis oft ungeachtet ihrer Namen/Typen oder so in Gruppen angeordnet haben, die eine Zusammengehörigkeit darstellen. Also in einem Verzeichnis mit Fotos von einer Party etwa die Bilder aller Fotografen zusammengruppiert, die eine bestimmte Person zeigen. Dafür möchte ich nicht extra noch ein Unterverzeichnis anlegen; ich möchte die Einträge nur von Hand sortieren können.
Früher[tm] benutzte man dafür Tools, die die Reihenfolge der Verzeichniseinträge direkt auf dem Datenträger interaktiv frei festlegen konnten. Heute, wo die verwendeten Dateimanager *immer* nach irgendeinem Merkmal sortieren, wäre das Humbug.
Ciao,
Martin
Ich möchte die Einträge in einem Verzeichnis oft ungeachtet ihrer Namen/Typen oder so in Gruppen angeordnet haben, die eine Zusammengehörigkeit darstellen. Also in einem Verzeichnis mit Fotos von einer Party etwa die Bilder aller Fotografen zusammengruppiert, die eine bestimmte Person zeigen. Dafür möchte ich nicht extra noch ein Unterverzeichnis anlegen; ich möchte die Einträge nur von Hand sortieren können.
WinFS wäre etwas für dich :p
Hallo,
Ich möchte die Einträge in einem Verzeichnis oft ungeachtet ihrer Namen/Typen oder so in Gruppen angeordnet haben, die eine Zusammengehörigkeit darstellen. Also in einem Verzeichnis mit Fotos von einer Party etwa die Bilder aller Fotografen zusammengruppiert, die eine bestimmte Person zeigen. Dafür möchte ich nicht extra noch ein Unterverzeichnis anlegen; ich möchte die Einträge nur von Hand sortieren können.
WinFS wäre etwas für dich :p
nein, im Gegenteil, das macht's ja noch komplizierter bzw. setzt eine weitere Abstraktionsebene drauf. Ich möchte das Dateisystem ja so primitiv und durchschaubar wie möglich haben, damit ich seine Interna a) schnell und umfassend verstehe und b) sowohl die Berechtigung als auch die Befähigung habe, um manuell einzugreifen, wenn mal etwas nicht ganz so passt, wie ich es gern hätte.
Ciao,
Martin