Nach Datum Sortieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angeben
argument
array
aufruf
ausgabe
code
date
datei
datenbank
datum
file
funktion
manual
ordner
pfad
semikolon
sortierung
speichern
url
zuviel
-
Ich verwende zur Zeit folgenden Code um Dateien aus einem Ordner anzuzeigen:
<?php $ordner = "files"; $alledateien = scandir($ordner); foreach ($alledateien as $datei) { $dateiinfo = pathinfo($ordner."/".$datei); if ($datei != "." && $datei != "..") { ?> <p><?php echo $dateiinfo['filename']; ?></p> <?php }; }; ?>
Dabei werden alle Dateien von A bis Z sortiert. Wie sortiert man die Dateien jetzt nach Datum? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hol dir die Zeit mit
, speicher alles in ein Array und sortier dieses dann.filemtime()
-
julianhabib schrieb:
Du kannst das Datum zu jeder Datei auch in einer Datenbank speichern und damit weiterarbeiten
Ähhm, ja kann man, wird aber niemand machen. hackyourlife sagte es, um die Dateien nach Änderungsdatum zu sortieren, benutze filemtime(), siehe PHP Manual: http://php.net/manual/en/function.filemtime.php. -
Hallo
du hast auch ein paar Strichpunkte zuviel ... nach } kommt normal kein Semikolon.
hier das ganze als Beispiel mit Funktion und Ausgabe
<?php // ----------------------------------------------------------------- // ----------------------------------------------------------------- // ----- Funktion ------ get_files_sorted() ------------------------ // ----------------------------------------------------------------- // ----- 1.Argument: Ordner / Pfad ... (wo die Dateien liegen) ----- // ----- 2.Argument: DESC oder ASC ... (ab- oder auf-steigend) ----- // ----------------------------------------------------------------- function get_files_sorted($ordner='.', $sort='DESC') { $alle_dateien = scandir($ordner); $data_dateien = array(); $data_sortkey = array(); foreach ($alle_dateien as $datei) { if ($datei != '.' && $datei != '..') { $dateiinfo = pathinfo($datei); $file_date = filemtime($ordner.'/'.$datei); $file_name = $dateiinfo['filename']; $data_dateien[] = array( 'file' => $ordner.'/'.$datei, 'name' => $file_name, 'zeit' => $file_date, 'date' => date('Y-m-d H:i:s',$file_date), ); $data_sortkey[] = $file_date; } } if ($sort == 'ASC') { // ---- Sortierung aufsteigend --- 'ASC' --- alte zuerst ---- array_multisort($data_sortkey, SORT_ASC, SORT_NUMERIC, $data_dateien); } if ($sort == 'DESC') { // ---- Sortierung absteigend --- 'DESC' --- neue zuerst ---- array_multisort($data_sortkey, SORT_DESC, SORT_NUMERIC, $data_dateien); } return $data_dateien; } // ----------------------------------------------------------------- // ----------------------------------------------------------------- print "<br />\n"; print "<br />\n"; print "<br />\n"; // ------------------------------------------------------- // ------ Aufruf der Funktion ------ $meinordner = 'test1'; // ---- hier den relativen Pafd angeben (Ordner-Name) $sortierung = 'DESC'; // ---- hier DESC oder ASC angeben (ab-/auf-steigend) $meine_daten = get_files_sorted($meinordner,$sortierung); // ------------------------------------------------------- // ------ print Ausgabe der Array-Daten ------ $n=1; foreach($meine_daten as $fdaten) { print "<p>Nr: ".$n." --- Datum: ".$fdaten['date']." --- Datei: ".$fdaten['file']." --- Name: ".$fdaten['name']."</p>\n"; $n++; } // ------------------------------------------------------- // ------ DEBUG Ausgabe der Array-Daten ------ print "<br />\n"; print "<br />\n"; print "<br />\n"; print "<pre style=\"margin:10px 4px; padding:4px; text-align:left; color:#000066; background:#DEDEDE;\">\n"; print_r($meine_daten); print "</pre>\n"; print "<br />\n"; print "<br />\n"; print "<br />\n"; // ---------------------------------------------------------------- ?>
ich hoffe das hilft weiter :)
Beitrag zuletzt geändert: 11.9.2013 14:24:26 von tweetbox -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage