![]()
Torna alla pagina delle funzioni
Questa funzione seleziona un file casuale di una data estensione all’interno di una cartella prestabilita.
Funzione
function rndImg(){
// Cartella in cui si trovano le immagini (con slash finale)
$dir = "sfondi/";
// Estensione dei file da cercare (con il punto iniziale)
$ext = ".jpg";
// Cerca tutti i file con l'estensione scelta
$arrFile = glob($dir . "*" . $ext);
// Se non ci sono file, ritorna false
if (!$arrFile || count($arrFile) == 0) {
return false;
}
// Scegli un indice casuale tra 0 e il numero di file - 1
$rndId = rand(0, count($arrFile) - 1);
// Restituisce il percorso del file selezionato
return $arrFile[$rndId];
}
Spiegazione
La funzione usa glob() per cercare tutti i file .jpg presenti nella cartella sfondi/.
Una volta ottenuto l’elenco dei file, controlla se la cartella contiene almeno un’immagine. Se non trova nulla, restituisce false.
Se invece trova dei file, genera un numero casuale compreso tra 0 e l’ultimo indice disponibile nell’array, e restituisce il percorso dell’immagine corrispondente.
Quando usarla
Puoi usare questa funzione per:
- mostrare uno sfondo casuale a ogni caricamento di pagina;
- visualizzare una foto casuale in homepage;
- ruotare banner o immagini in modo semplice senza database.
Esempio
<img src="<?php echo rndImg(); ?>" alt="Immagine casuale" />
In questo modo, a ogni aggiornamento della pagina, verrà mostrata un’immagine diversa scelta casualmente dalla cartella.
Come evitare errori
Se la cartella non contiene file con l’estensione specificata, la funzione restituisce false invece di dare errore.
Questo ti permette di gestire il caso in modo elegante, ad esempio mostrando un’immagine di default:
$sfondo = rndImg();
if (!$sfondo) {
$sfondo = "default.jpg";
}
echo '<img src="' . $sfondo . '" alt="Sfondo" />';