[php]readdir nach Datum sortieren?

Diskutiere [php]readdir nach Datum sortieren? im Programmieren allgemein Forum im Bereich Programmieren unter Linux/Unix; Hallo beisammen, vorweg muss ich sagen, dass ich mich 0 mit php auskenne und auch (vorerst) kein Interesse daran habe. Allerdings ist der, der...

  1. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    994
    Zustimmungen:
    0
    Ort:
    Berlin
    Hallo beisammen,
    vorweg muss ich sagen, dass ich mich 0 mit php auskenne und auch (vorerst) kein Interesse daran habe. Allerdings ist der, der sich um unsere Intranetseite kümmert, grade im Urlaub und ich wurde temporär damit beauftragt, diese Ausgabe zu sortieren, da ich mich noch am ehesten mit der Strukturierung der Seite auskenne.

    Folgendes Problem:
    Ich habe hier ein Verzeichnis, welches mit readdir ausgelesen wird. Das Auslesen geschieht allerdings willkürlich, obwohl es -laut php Referenz- nach Anlegung im Dateisystem ausgegeben werden sollte. Also praktisch nach Datum, wenn ich das richtig verstehe.
    Sooo, ich habe schon einige Zeit mit googlen verbracht und bin auf folgendes Thema gestoßen: *klick*.
    Vom Ansatz her, sieht es auf jedenfall sehr brauchbar aus, wenn es funktionieren würde. Egal, ob ich die Lösung mit "meinem" Code kombiniere oder es aber alleine stehen lasse, er wirft mir immer mit Fehlermeldungen um sich, dass er die Files nicht handeln kann. Außerdem gibt er mir dann ein Array mit den Werten [Datum, File, $file] zurück!

    Hier ist unser Code. Wie gesagt, bitte nicht schlagen, nicht mein Werk, ich finde ihn etwas "komisch".. naja, womöglich auch nur in Zusammenhang mit dem Rest:
    Code:
    dir = '.\ORDNER\BLAAAAAA';
    
    if ($handle = opendir($dir)) {
    
       while (false !== ($filename = readdir($handle))) {
    
    	$file=str_replace ( " ","%20",$filename);
    
    	  if ($file != "." && $file != "..") {
    
            echo "<a href=.\ORDNER\BLAAAAAA\\$file target='_blank'>$filename</a>";
    
    		echo "<br>"; 
    
        } 
    	}
            closedir($handle);
    }
    

    Wie kann ich es nun -möglichst ohne viel Aufwand- schaffen, die Einträge dem neusten Datum nach zu sortieren?

    Wäre für jeden Tipp (Lösung ? :D) und jedes vermiedene Rumgeflame sehr dankbar!

    ciao

    ps: den Ordnerinhalt zu sortieren geht def. nicht!
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 trustno1, 04.01.2008
    trustno1

    trustno1 000517--trustno1@FBI.gov

    Dabei seit:
    21.12.2007
    Beiträge:
    10
    Zustimmungen:
    0
    Einfaches Beispiel:

    Anstatt die Ordner direkt in der while-Schleife des dir-Handlers auszugeben, würde ich erstmal ein eindimensionales Array bauen und den Handler beenden.
    PHP:
    $dir '/PFAD/WOHIN/AUCH/IMMER/';

    if (
    $handle opendir($dir)) {
        
        while (
    false !== ($file readdir($handle))) 
        {
            if (
    $file != "." && $file != "..")
            {
                
    $bla[@filemtime($dir.$file)] = $file;
            }
        }
        
    closedir($handle);
    }
    Und nun die Array-Schlüssel (filemtime) mit Wertbeibehaltung wie gewünscht sortieren und ausgeben:

    PHP:
    krsort($bla);

    foreach (
    $bla as $file)
    {
        echo 
    "<a href=\"/PFAD/WOHIN/AUCH/IMMER/".str_replace(" ""%20"$file)."\" target=\"_blank\">$file</a><br>\n";
    }
    Frage am Rande: Was soll ".\ORDNER\BLAAAAAA\\" für eine Struktur sein?
     
  4. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    994
    Zustimmungen:
    0
    Ort:
    Berlin
    hi,
    erstmal vielen Dank fuer die Hilfe. Leider werde ichs erst Montag wieder testen können!
    Dabei handelt es sich um nen Windowsserver mit frei erfundenen Ordnernamen. Das letzte "\" soll schätze ich mal ein Escapezeichen sein, so wie ich die Lage einschätze :)

    Ich melde mich wieder, wenn ich Probleme habe, oder es geklappt hat ! :o)

    ciao
     
  5. #4 trustno1, 04.01.2008
    trustno1

    trustno1 000517--trustno1@FBI.gov

    Dabei seit:
    21.12.2007
    Beiträge:
    10
    Zustimmungen:
    0
    Ahh, jetzt erinnere ich mich duster an alte Dos-Zeiten :o

    Wenn es eh nur erfunden war, hm´kay. Ich verstand nur nicht warum diese Variable in diesem String escaped werden sollte.

    Schönes - arbeitsfreies - Wochenende!
     
  6. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    994
    Zustimmungen:
    0
    Ort:
    Berlin
    Hallo,
    der Pfad war real, die Ordnernamen habe ich aus Datenschutzgründen geändert!

    Ich weiß, dass es mit einem Slash nicht geklappt, wieso kann ich leider nicht sagen.. und das mit dem Escapen war nur ein Schuss ins Blaue !

    Danke!
     
  7. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    994
    Zustimmungen:
    0
    Ort:
    Berlin
    //update:

    Mojn Mojn,
    das Skript zeigt leider nur einen Eintrag an. Ansonsten scheint es zu klappen (Die Verlinkung zumindest;)) !

    ciao
     
  8. #7 trustno1, 07.01.2008
    trustno1

    trustno1 000517--trustno1@FBI.gov

    Dabei seit:
    21.12.2007
    Beiträge:
    10
    Zustimmungen:
    0
    Versuch mal in der Variable $dir den Ordner mit einem Backslash abzuschließen.
    PHP:
    $dir '.\ORDNER\BLAAAAAA\';
     
  9. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    994
    Zustimmungen:
    0
    Ort:
    Berlin
    heeey,

    muchas gracias. sieht super aus! vielen dank !

    ciao
     
Thema:

[php]readdir nach Datum sortieren?

Die Seite wird geladen...

[php]readdir nach Datum sortieren? - Ähnliche Themen

  1. OpenRA: »Command&Conquer«-Nachbau in neuer Version

    OpenRA: »Command&Conquer«-Nachbau in neuer Version: Das Team rund um den freien Nachbau des Strategie-Klassikers »Command & Conquer«, OpenRA, hat eine neue stabile Version der Spieleplattform...
  2. Faircomputer stellt nachhaltigen Laptop vor

    Faircomputer stellt nachhaltigen Laptop vor: Faircomputer bietet neben der Wiederverwertung von aufgearbeiteten Laptops jetzt mit »Faircomputer No. 1« einen in der EU produzierten Laptop an,...
  3. Support für OpenSuse Leap 15.0 endet nächsten Monat

    Support für OpenSuse Leap 15.0 endet nächsten Monat: Wie Marcus Meissner in einer E-Mail in der Security-Liste des Projektes schreibt, endet die Unterstützung der Version Leap 15.0 der freien...
  4. JACK: Neue Version nach zwei Jahren

    JACK: Neue Version nach zwei Jahren: Das JACK Audio Connection Kit (JACK) wurde knapp zwei Jahre nach der letzten Version in einer neuen Version veröffentlicht. Die neue Version...
  5. KDE definiert neue Ziele für die nächsten Jahre

    KDE definiert neue Ziele für die nächsten Jahre: Das KDE-Projekt hat auf der Konferenz Akademy 2019 neue Ziele für die nächsten zwei Jahre definiert. Weiterlesen...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden