Auslesen von Dateien nach Datum sortieren, per GET und auflisten begrenzen (limit)

jatop

Mitglied
Auslesen von Dateien nach Datum sortieren, per GET

Hallo!

Ich habe wieder ein Problem und mal sehen ob wieder zuerst der Bieber mir hilft... den mag ich am liebsten! :)

Ich will Dateien aus einem Verzeichnis auflisten... kein Problem, dich ich habe bei folgenden Dingen Schwierigkeiten:

Nur Dateien mit Übereinstimmung von $_GET, wenn nicht vorhanden, automatisch heutige Dateien auflisten.
(also in Form index.php?date=07.12.08)

Natürlich habe ich schonmal heute und gestern... mit im coode...


Dazu:

Mein aktueller Code (ohne Änderungen!):

PHP:
$folder = 'ordner/';

$d = dir($folder);
$files = array();
$toEnd = '.endung';



$counter = 0;

while (($entry = $d->read()) !== false) {

  if (is_file($d->path.$entry) &&
     (StrCaseCmp($toEnd, substr($entry, -(strlen($toEnd)))) == 0)) {
    $files[$entry] = filemtime($d->path.$entry);

$counter++;


	
  }

}

$d->close();

echo "".$counter."";

arsort($files);

//... mehr wird IHMO nicht beötigt...

Funktioniert alles!


Der Befehl zum ermitteln des Datums im Dateiname (funktionierendes Beispiel, jedoch nicht gerecht für das Problem, bzgl. $filename) :

PHP:
preg_match('/_(\d\d\.[01]\d\.[0-3]\d)_/', $filename, $matches);

Es ist in der Form 07.08.31 .

Wenn also kein GET-wert übergeben wird, automatisch heutiges Datum.

Dann muss $matches mit dem heutigem Datum verglichen werden , mein Codeschnipsel:

PHP:
<?

$today = date("y.m.d",time());
if (isset($_GET["date"]) OR $_GET["date"]=$today) {


//dateien von heute auflisten




}
else{
//nur Dateien mit dem Datum auflisten



/*
jepp, den code ist nicht vorhanden... 

siehe unten... dieser code dient nur meinem Versuch, GET mit heute zu vergleichen.

aber es werden hier die Files aufgelistet mit dem Datum von GET - außer die von heute. 
Glaube ich müsste es lieber umgekehrt machen.. da es vermutlich ein Denkfehler war... 
*/

}

?>


Hier mein zusammengebastelter Code:
(ich habe 2x gestern drin da vielleicht das erste sicherer funktioniert... )

PHP:
$today = date("y.m.d",time());
$gestern = date('y.m.d',mktime(0,0,0,$m,$d-1,$j));
$datum_gestern=date("y.m.d",(strtotime("now")-86400));

$counter = 0;


preg_match('/_(\d\d\.[01]\d\.[0-3]\d)_/', $path.$entry, $matches);
if($matches[1] = $today)

  if (is_file($d->path.$entry) &&
     (StrCaseCmp($toEnd, substr($entry, -(strlen($toEnd)))) == 0)) {
    $files[$entry] = filemtime($d->path.$entry);

$counter++;


Hier fehlt zwar das mit dem GET aber es funktioniert sowieso nicht so wie ich will.
Ich denke ich nähe mich in langsamen Schritten... doch ich habe auch lange gesucht...

Danke im Vorraus für eure Ratschläge (nicht Verweise wie :google: etc. sondern Lösungsansätze).
 
Zuletzt bearbeitet:
Zurück