dominik.at: opendir/readdir nach Datum sortieren

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>';  

  1. 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.

    1. 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 :-(

      1. 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/

  2. 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

    --
    Ich habe gerade erfahren, dass Tante Frieda gestorben ist. Der Tod hat sie im Schlaf ereilt. - Schrecklich. Dann weiß sie es also noch gar nicht?
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. [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

      --
      Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
      in Richtung "Mess up the Web".(suit)
      SelfHTML-Forum-Stylesheet
      1. 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

        --
        Auf jeden Menschen auf der ganzen Welt entfallen statistisch gesehen etwa 3000 Spinnen, wie Wissenschaftler jetzt festgestellt haben.
        Wer will meine haben? Denn ich will sie bstimmt nicht.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. 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

          1. 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

            --
            Theorie ist, wenn jeder weiß, wie's geht, und es geht trotzdem nicht.
            Praxis ist, wenn's geht, und keiner weiß warum.
            Bei uns sind Theorie und Praxis vereint: Nichts geht, und keiner weiß warum.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(