Bilder aus einem Ordner nach Datum sortiert anzeigen lassen.

Hookah

Erfahrenes Mitglied
Hallo Liebe Leute. Ich weiss das es dutzende Fragen dazu gab und ja, die Suchfunktion ist benutzt. Ich hab mir einige Threads angeguckt. Wie der Threadtitel schon sagt möcht ich die Bilder aus einem Ordner nach Datum sortiert anzeigen lassen. Ich hab im Internet folgendes gefunden um die Bilder aus dem Ordner auszulesen und wir einfach der Name des Bildes eingetragen. Zur Zeit wird das ganze nach Alphabetischer Reihenfolge sortiert. Die Bilder werden von Usern Hochgeladen und bekommen dabei einen zufälligen Namen.

So werden die Bilder ausgelesen.
PHP:
<?PHP
$dir = "bilder/";

foreach (glob($dir."*") as $filename){
    echo '<img src="'.$filename.'" width="150" height="150"><br><br>';
} 

?>

Leider hab ich in keinem der dutzenden Threads eine Lösung finden können. Ist es denn so überhaupt möglich? Ich finde die Lösung zum auslesen der Bilder im Ordner sehr schön und einfach.

mfG Hook
 
[phpf]filemtime[/phpf] oder [phpf]filectime[/phpf].

Eine von beiden sollte dir dabei helfen können ;)
 
Ok danke, also einen Schritt weiter bin ich jetzt schon , ich hab mal mit echo das Datum und die Uhrzeit ausgeben lassen. Nur weiss ich nicht wie ich danach jetzt sortieren soll :confused: Also die Zeitausgabe ist richtig von den Dateien. Das neuste Bild soll oben sein und die anderen in absteigender Reihenfolge.
 
Ok ich habs so Probiert. Ihr dürft lachen wenn ihr wollt aber ich hab keine Idee :-( Zumindest hab ich es Probiert. Ich hab es noch nie gebraucht. Wäre nicht schlecht wenn ihr mir ein wenig helfen könnt. Ist der Ansatz denn schonmal richtig?

PHP:
<?PHP
$dir = "walls/";

foreach (glob($dir."*") as $filename){
$zeit = date("F d Y H:i:s", filemtime($filename));
    echo '<img src="'.$filename.'" width="150" height="150"><br><br>';
echo " $zeit ";
$bildarray[] = array($zeit);
} 
array_multisort($bildarray);
?>
 
Mein Vorschlag:
PHP:
$files = array();
foreach( glob($dir."*") as $file ) {
	$files[filemtime($file).'-'.$file] = $file;
}
ksort($files);
 
Hallo.

Also wenn ich es so mache :
PHP:
<?PHP
$dir = "walls/";

$files = array();
foreach( glob($dir."*") as $file ) {
echo"<img src='$file' width='150' height='150'>";
    $files[filemtime($file).'-'.$file] = $file;
}
ksort($files); 
?>
funktioniert es leider nicht. Das Bild wird irgendwo angezeigt.

mfG Hooki
 
Du musst auch die sortierte Arrayelemente verarbeiten und nicht die unsortierten. Und erst mit dem Aufruf der ksort()-Funktion werden sie sortiert.
 
Ich kann dir leider nicht ganz folgen. Ich habe jetzt ein wenig umgestellt aber funktionieren tut es leider nicht. Aber danke für die Geduldigkeit.
 
Sorry wegen Doppelpost aber wenn ich editiert hätte würde es sich warscheinlich nicht mal jemand ansehen.

Ich bin jetzt soweit das die Bilder sortiert werden aber nicht nach Datum des Uploads. Ich hab es versucht mit array_multisort , ksort , sort und ein paar anderen . Die Bilder wurden auch sortiert aber nicht so wie ich es möchte , neustes an erster Stelle und dann soweiter bis das letzte Bild das älteste ist. Zur Zeit sieht das ganze so aus :
PHP:
<?PHP

$dir = "walls/";
$dir .= $_GET['album'];
$dir .= "/";
$files = array();


$verz = opendir($dir);
while($file = readdir($verz))
    {
    if($file != "." && $file != ".." && $file != $PHP_SELF)
        {
        $files[filemtime($dir.$file)] = $file;
        }
    }

ksort($files); //HIER WIRD SORTIERT

foreach($files as $val)
    {
    echo '<a href="comment.php?na='.$dir.''.$val.'"><img src="'.$dir.''.$val.'"></a><br />';
    }

?>
Es wäre gut wenn mir jemand verständlich helfen kann denn ich probiere es schon seit längerem.

mfG Hook
 

Neue Beiträge

Zurück