2017-07-04 3 views
0

Ich erstelle eine Bildergalerie und möchte, dass meine zuletzt hochgeladenen Bilder an der Vorderseite angezeigt werden. DieseWie erhalten Sie Bilddateien aus einem Verzeichnis und einer Reihenfolge, nachdem sie zuletzt geändert wurden?

ist das, was ich derzeit haben:

$files = glob("images/*.*"); 
for ($i=0; $i<count($files); $i++) { 
    $image = $files[$i]; 
    $supported_file = array('gif','jpg','jpeg','png'); 

    $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION)); 
    if (in_array($ext, $supported_file)) { 
     echo basename($image)."<br />"; // show only image name if you want to show full path then use this code // echo $image."<br />"; 
     echo '<img src="'.$image .'" alt="Random image" />'."<br /><br />"; 
    } else { 
     continue; 
    } 
} 

Aber ich bin nicht sicher, wie es in der Reihenfolge der zuletzt hochgeladenen Anzeige zu machen.

+0

Sie benötigen eine völlig andere Lösung, wahrscheinlich basierend auf einem Datei-Iterator. Mein Rat ist, die Symfony Finder-Komponente zu verwenden, die bereits eine Reihe von Sortierungen eingebaut hat. Siehe https://symfony.com/doc/current/components/finder.html – gview

+0

Es sind 2 anwendbare Sortiermethoden bereits eingebaut: sortByChangedTime() und sortByModifiedTime() – gview

+0

Verwenden Sie http://php.net/manual/en/function.filemtime.php, um ein Array von Elementen zu erstellen, wobei key der Dateiname ist und value ein umformatierter Zeitstempel ist, dann 'rsort()' Will this Arbeite für dich? – mickmackusa

Antwort

2
$files = glob("*.{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF}",GLOB_BRACE); 
$sorted_files=array(); /* a new array that have modification time as values 
and files as keys the purpose is to sort files according to the values in reverse order */ 
foreach ($files as $file) 
{ 
    $sorted_files[$file]=filemtime($file); 
} 
arsort($sorted_files); 
foreach ($sorted_files as $image=>$mtime) 
{   
    echo basename($image)."<br />"; // show only image name if you want to show full path then use this code // echo $image."<br />"; 
    echo '<img src="'.$image .'" alt="Random image" />'."<br /><br />"; 
} 
+0

ja, ich tat, muss nicht den datetime ausdruck neu formatieren, da es als integer verglichen wird Ja, ich stimme für Werte als Schlüssel zu, ich werde das bearbeiten – user10089632

Verwandte Themen