Mostrare ultima immagine caricata sul server in una directory con sottocartelle


Con questo script PHP da me creato è possibile mostrare nella propria pagina web l'ultima immagine o file caricato sul server e in una specifica cartella e anche nelle sottocartelle della directory madre.

Ho realizzato questo script in occasione di un lavoro un po particolare.

Una Webcam IP salva uno snapshot ogni 7 secondi in una directory del server ma il software della stessa webcam invece di rinominare un singolo file, crea invece tante cartelle e sottocartelle in corrispondenza della data, dell'orario e dei minuti.

Quindi lo scopo di questo script è quello di prendere l'ultima immagine .jpeg caricata sul server senza dover specificare in quale sotto cartella è salvato l'ultimo snapshot, bensì effettua una scansione completa di tutte le cartelle create dal software e prende il file più recente.

Il risultato finale è quello di una pagina web con l'ultima foto scattata dalla webcam e aggiornata automaticamente da un refresh temporizzato ogni 8 secondi.

 

SCRIPT PHP

 

header("Refresh: 8; url=" . $_SERVER["PHP_SELF"]);

$ultimi=1;

foreach(glob('snapshot/*/*.jpg') as $nomefile)
{

$f[filemtime($nomefile)]=$nomefile;

}

krsort($f,SORT_NUMERIC);
reset($f);

//echo "Webcam Live:";

for($i=0;$i<$ultimi;$i++)
{
echo '<\img src="'. current($f) .'" width="640" height="480">';

next($f);
}

 

foreach(glob('snapshot/*/*.jpg') as $nomefile)

* sostituite 'snapshot/*/*.jpg' con il vostro percorso. 
Il simbolo /* significa qualsiasi nome di sottocartella eventualmente necessario.
E' possibile cercare anche un'altro tipo di file ad esempio .png.

Nel caso di siti realizzati con Joomla o Wordpress può essere opportuno l'utilizzo di un plugin per l'inserimento di codice PHP all'interno di un articolo altrimenti il mio consiglio è quello di utilizzare una pagina esterna e successivamente la funzione iframe.