Sortieren von ausgelesenen Datein

- 1. Preis für die Länge der Beschreibung
- Kein Preis für die Beschreibung

:-)

Zum Verständnis:
Du hast einen Ordner mit PHP ausgelesen?
Wie hast Du das angestellt? (kurzes scriptbeispiel)
Es hängt vom Script ab, wie die Dateien/Ordner in dem Ordner ausgelesen wurden. Wenn nur nach Dateinamen ausgelesen wurde, kannst Du sortieren nach Datum vergessen. Wenn Du pro Datei ein array mit allen Angaben gespeichert hast, wirst Du es ohne Probleme sortieren können.

Letztenendes gibt es viele Möglichkeiten einen Ordner auszulesen.

Oder hast Du noch kein Script?

Das nächste Mal bitte so schreiben, das man Dich versteht :rolleyes:
 
PHP:
$handle = opendir($dir);
while ($file = readdir($handle)) {
}
closedir($handle);

so habe ich das gemacht (Inhalt der Schleife brauhst ja nicht, oder ?) , fals eine andere methode sinnvoller oder besser ist, bin cih gerne bereit dazuzulernen ^^

-dennis
 
Folgendes Script liest aus angegebenem Verzeichnis alle Dateien heraus, mit Namen und allen nötigen Werten (Größe, Datum, usw.):

PHP:
<?php
$basedir = ".";
// funcs
function listdir($basedir,&$a_dir){
 if ($handle = @opendir($basedir)){
  while(false !== ($dir = readdir($handle))){
   if ($dir != '.' || $dir != '..'){
    if (is_file($basedir."/".$dir)){
     $a_dir[] = $dir;
     $a_dir[][] = lstat($basedir."/".$dir);
    }
   }
  }
 closedir($handle);
 }
return $a_dir;
}
// aufruf
listdir($basedir,$a_dir);
// ausgabe
print_r($a_dir);
// cache leeren
clearstatcache();
?>

Habe es nur grob getestet. Informationen zu lstat () (oder stat() ) finden sich hier: http://de3.php.net/manual/de/function.lstat.php

Mit den Array, Sortierfunktionen sollte es Dir möglich sein, nach Datum, Dateigröße, uvm. zu sortieren!

Im Array $a_dir sollten sich alle nötigen Informationen (und auch unnötige :) ) befinden.
 
ganz herlich gesagt, ist es mir nciht möglich , aknnst du es mir bitte genau beschrieben , bin auf dem gebiet von PHP noch ein Neuling :)

Danke !!!

-dennis
 
Hmm, eigentlich war ich jetzt nicht auf Privatunterricht vorbereitet. Ich weiß nicht wieviel und was Du über PHP weißt.

Also, dieses Script bildet ein mehrdimensionales Array.
Über Arrays findes Du hier informationen:
http://de3.php.net/manual/de/language.types.array.php

In der ersten Ebene befinden sich die Dateinamen.
Es sollte so viele Elemente im Array geben wie es Dateien gibt.
Code:
$a_dir[0] -> "datei.txt"
$a_dir[1] -> "datei.doc"
$a_dir[2] -> "datei.mp3"
$a_dir[3] -> "datei.jpg"
... usw.

die zweite Ebene enthält Informationen über die Datei, was wie folgt ausschaut:
Code:
$a_dir[0] -> "datei.txt"
$a_dir[0][0] bis $a_dir[0][12] enthält informationen über "datei.txt"
kleiner zusatz:
$a_dir[0][dev] bis $a_dir[0][blocks] funktioniert auch (siehe die Seite aus dem Manual, das ich im vorigen Post angegeben habe.

$a_dir[0][size] gibt die größe der Datei "datei.txt" aus
$a_dir[0][mtime] liefert Datum und Uhrzeit letzten Änderung der Datei "datei.txt".

Wenn Du allerdings mit mehrdimensionale Arrays Schwierigkeiten hast, solltest Du vielleicht bestimmte Funktionen verwenden und jeweils nur eine abrufen:

filemtime -- Liefert Datum und Uhrzeit der letzten Dateiänderung
int filemtime ( string filename)
http://de3.php.net/manual/de/function.filemtime.php

filesize -- Liefert die Größe einer Datei
int filesize ( string filename)
http://de3.php.net/manual/de/function.filesize.php

Ich kann Dir keine einfache Lösung bieten, sorry.
Ansonsten würde ich empfehlen mal bei http://www.zend.com im Code-Archiv nachzuschauen. Es gibt mehrere Lösungswege für die meisten Probleme. Vielleicht ist mein Weg zu kompliziert und es gibt eine einfachere Lösung ( ich drück die Daumen ;) ).

Greetz,
Neuro
 
Zurück