Sven Rautenberg: PHP include

Beitrag lesen

Aloha!

<?php
$handle=opendir('news');
while ($file = readdir ($handle)) {
   if ($file != "." && $file != "..")
    include ("news/$file");
}
closedir($handle);
?>

alle dateien aus dem verzeichnis sind jetzt in der seite wie gewollt, aber mit der sortierung haberts noch, ich will, dass die zu letzt erstellte .txt datei als erste in der php seite erscheint.

Dann mußt du ein wenig mehr tun, als nur die unsortierten Textdateien einlesen.

Zunächst mal: _Das_ Dateidatum gibts nicht, es gibt nur mehrere: fileatime, filectime, filemtime. Damit kriegst du raus, wann eine Datei zuletzt gelesen oder beschrieben wurde. Lies die Befehlsbeschreibungen am besten selbst:
http://www.php.net/manual/de/function.fileatime.php
http://www.php.net/manual/de/function.filectime.php
http://www.php.net/manual/de/function.filemtime.php
und
http://www.php.net/manual/de/function.clearstatcache.php
wenn du seltsame Ergebnisse erhälst, die schon uralt sind. :)

Für jede gefundene Text-Datei mußt du also das gewünschte Datum herausfinden und irgendwie speichern. Ein Array wäre gut.

Wenn du array_multisort() verwendest, kannst du im ersten Array die einzelnen Dateinamen speichern, und in einem zweiten Array das Dateidatum dazu. Gleicher Index bedeutet gleiche Dateizugehörigkeit.
http://www.php.net/manual/de/function.array-multisort.php

Du hast also $filename[0..n]="textdatei.txt" und $filedatum[0..n]="123456768".

Nach dem Multisort sind die Dateien im Array alle in der richtigen Reihenfolge, du mußt also $filename nur noch von 0 bis n durchgehen und alle Textdateien ausgeben.

- Sven Rautenberg