ordner nach datum sortieren

kolja82

Grünschnabel
guten abend

nachdem ich hier schon viel gelesen habe, muss ich aber auch mal ne frage stellen.

ich möchte gerne ordner die sich in einem verzeichnis befinden als link darstellen
und zwar den neusten ordner zuerst

das mit dem durchlaufen des verzeichnisses und das (unsortierte) anzeigen,
habe ich schon ganz gut hinbekommen:

PHP:
    $fh = opendir("fotos"); //Verzeichnis
    $verzeichnisinhalt = array();
    while (true == ($file = readdir($fh)))
    {
            if ((substr(strtolower($file), -3)!="php") && (substr(strtolower($file), -3)!="txt") && $file !="." && $file !=".." && $file !="uploads" && $file !="jupload") //ausschliessen von dateiendungen
            {
                $verzeichnisinhalt[] = $file;
            }
    }
 print_r ($verzeichnisinhalt);
    echo "<div id='galerie'><table width='200' cellspacing='5'>";
    for($i=0;$i<count($verzeichnisinhalt);$i++)
    { 
        echo "<tr><td class='forumlink'>";
        echo "     <a href='album.php?dir=$verzeichnisinhalt[$i]'>".$verzeichnisinhalt[$i]."</a></td>";                                                
        echo "</tr>";
    }
    echo "</table></div>";
}

nur das sortieren fällt mir sehr schwer...

versucht habe ich es mit solchen dingen: (aber bitte nicht lachen)

PHP:
 for($i=0;$i<count($verzeichnisinhalt);$i++)
{
 $array[$ = array( filemtime($verzeichnisinhalt[$i]) =>  $verzeichnisinhalt[$i]);
}

aber das klappt gar nicht!

vielleicht hat jeman sowas schon gemacht,
oder weis wo ich mehr darüber erfahren kann

danke kolja
 
Auf PHP.net gibt es ein gutes Beispiel zu filectime ( = File Create Time ):
PHP:
<?PHP
function dirList ($directory, $sortOrder){

    //Get each file and add its details to two arrays
    $results = array();
    $handler = opendir($directory);
    while ($file = readdir($handler)) {  
        if ($file != '.' && $file != '..' && $file != "robots.txt" && $file != ".htaccess"){
            $currentModified = filectime($directory."/".$file);
            $file_names[] = $file;
            $file_dates[] = $currentModified;
        }    
    }
       closedir($handler);

    //Sort the date array by preferred order
    if ($sortOrder == "newestFirst"){
        arsort($file_dates);
    }else{
        asort($file_dates);
    }
    
    //Match file_names array to file_dates array
    $file_names_Array = array_keys($file_dates);
    foreach ($file_names_Array as $idx => $name) $name=$file_names[$name];
    $file_dates = array_merge($file_dates);
    
    $i = 0;

    //Loop through dates array and then echo the list
    foreach ($file_dates as $file_dates){
        $date = $file_dates;
        $j = $file_names_Array[$i];
        $file = $file_names[$j];
        $i++;
            
        echo  "File name: $file - Date Added: $date. <br/>";        
    }

}
?>
 
Zurück