Si ma.... se la cartella (dopo un periodo X) arrivasse a contenere 200 immagini, come pensi possa venire gestita la rotazione oraria???
Mi ci sono divertito a trovare una soluzione e penso che potresti fare così:
Codice PHP:
// definisci il percorso dove risiedono le immagini che
// vuoi far rotare
$folder = "percorso/per/arrivare/alle/immagini";
// apri la cartella
$file_jpg = opendir($folder);
// fai un ciclo per vedere i file che vi sono contenuti
while ($file = readdir($file_jpg)) {
list ($nome,$estensione) = explode(".", $file);
if ($estensione == "jpg") {
$array_immagini[] = "$file";
}
} // chiudo il ciclo di while
Qui mi fermo perché ti devi porre qualche domanda.
1) Le foto possono essere meno di 24 (quindi meno di 1 l'ora)
2) Le foto possono essere più di 24 (quindi più di 1 l'ora).
3) Le foto possono essere 24 (e allora non hai grossi problemi).
È necessario quindi porre delle condizioni.
Codice PHP:
// conto quante foto sono nell'array
$numero_foto = count($array_immagini);
// calcoli che ora è
$ora = date("H", time());
$min = date("i", time());
if ($ora > 0 && $numero_foto < 24) {
// calcoli l'intervallo tra una foto e l'altra
$intervallo = 24 / $numero_foto;
$indice = (round($ora/$intervallo)) - 1;
} elseif ($ora > 0 && $numero_foto > 24) {
// in questo caso ne avvicendi + di 1 l'ora
// per cui devi conoscere anche i minuti
// calcolo i minuti passati dalla mezzanotte
$min_attuali = ($ora * 60) + $min;
$minuti_in_un_giorno = 1440;
$rapporto_foto_minuti = $minuti_in_un_giorno / $numero_foto;
// calcolo l'indice
$indice = (round($min_attuali/$rapporto_foto_minuti)) - 1;
} elseif ($ora == 0 OR $numero_foto == 24) {
$indice = $ora;
}
$immagine_da_visualizzare = $array_immagini[$indice];
Non l'ho provato, ma dovrebbe andare.
Dovessero esserci problemi, spero che hai capito il mio metodo, così puoi provare a modificartelo anche da te.