2010-10-02 23 views
1

J'ai un serveur de caméra FTPing images sur un serveur web. Quelqu'un peut-il suggérer l'extrait PHP dont j'aurais besoin pour regarder dans le répertoire racine public du serveur (/ public_html) et afficher les quatre images les plus récentes?PHP: afficher les images les plus récentes du répertoire?

Je peux dire au serveur de caméra de nommer les images téléchargées par date/heure, mais nécessaire [par ex. image-021020102355.jpg pour une image créée le 2 octobre 2010 à 23h55]

merci!

Répondre

1

J'ai rassemblé quelque chose qui peut vous aider. Ce morceau de code affiche les dernières images récentes dans le répertoire racine de votre serveur.

<?php 

    $images = glob('*.{gif,png,jpg,jpeg}', GLOB_BRACE); //formats to look for 

    $num_of_files = 4; //number of images to display 

    foreach($images as $image) 
    { 
     $num_of_files--; 

     if($num_of_files > -1) //this made me laugh when I wrote it 
      echo "<b>".$image."</b><br>Created on ".date('D, d M y H:i:s', filemtime($image)) ."<br><img src="."'".$image."'"."><br><br>" ; //display images 
     else 
      break; 
    } 
?> 
2

Cela devrait le faire:

<?php 
foreach (glob('*.jpg') as $f) { 
    # store the image name with the last modification time and imagename as a key 
    $list[filemtime($f) . '-' . $f] = $f; 
} 

$keys = array_keys($list);  
sort($keys);     # sort is oldest to newest, 

echo $list[array_pop($keys)]; # Newest 
echo $list[array_pop($keys)]; # 2nd newest 

Si vous pouvez faire le tri des noms de fichiers YYYYMMDDHHMM.jpg() peut les mettre dans l'ordre et cela fonctionnerait:

<?php 
foreach (glob('*.jpg') as $f) { 
    # store the image name 
    $list[] = $f; 
} 

sort($list);     # sort is oldest to newest, 

echo array_pop($list); # Newest 
echo array_pop($list); # 2nd newest