Dateien sortieren

RageNo1

Erfahrenes Mitglied
Hallo,
eines vorweg, ich habe in der Suche nichts passendes
gefunden meist nur MySQL bezogen.

Ich lasse einen Ordner folgendermaßen auslesen:
PHP:
<? 

$dir = "upload"; 

$verz=opendir ("$dir/"); 
echo "Inhalt des Ordners <b>$dir</b>: <br>"; 
while ($file = readdir ($verz)) { 
if($file != "." && $file != "..") 
echo "<a href=\"$dir/$file\">$file</a><br>"; 
} 
closedir($verz); 

?>

Nun möchte ich gerne, das die Dateien noch sortiert werden
und die neuesten oben stehen.

Die Dateinamen setzen sich wie folgt zusammen:
Jahr,Monat,Tag,Stunde,Minute,Sekunde_bild.jpg
z.b. so 20050324081646_bild.jpg

Die Dateien wurden via Uploadscript hochgeladen
und entsprechend dem Datum umbenannt daher der
merkwürdige Dateiname.

Wier erreiche ich nun, das die Dateien sortiert werden
und die neuesten oben stehen in der Liste?

Mfg Ragey
 
Soweit ich weiß, kann man die Dateien eines Verzeichnisses nicht extra sortieren.
Du kannst doch aber alle Dateinamen in ein Array packen und dieses dann sortieren!

redlama
 
Müsste ich also in meinem Fall das so handhaben?
PHP:
$files = array ($file);
sort ($files);

Aber wie baue ich das dann ein (sofern es richtig ist)?
 
Ich denke so sollte es gehen, ja!
Kannst es ja einfach mal versuchen. Sollte es dann doch nicht gehen, dann schauen wir nochmal! :)

redlama
 
Versuch's mal so:
PHP:
<?php
$dir = "upload";
$verz = opendir("$dir/");
echo "Inhalt des Ordners <b>$dir</b>: <br>";
while($file = readdir($verz))
{
  if($file != "." && $file != "..")
    $files = array($file)
}
closedir($verz);
sort($files);
for($i = 0; $i < count($files); $i++)
  echo "<a href=\"$dir/".$files[$i]."\">".$files[$i]."</a><br>";
?>

redlama
 
Parse error: parse error, unexpected '}' in /www/htdocs/v150119/test/dir.php on line 32

Das wäre der Teil mit dem Pfeil:

$files = array($file)
} <--
closedir($verz);
 
Probier mal das
PHP:
  if($file != "." && $file != "..")
    $files = array($file)
durch das
PHP:
  if($file != "." && $file != "..")
  {  $files = array($file);  }
zu ersetzen und guck ob's was bringt.
Oder durch das:
PHP:
  if($file != "." && $file != "..")
    $files = array($file);
 
Zurück