Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Php :: Estrarre immagini casuali da una cartella con PHP :: Indice Php

Estrarre immagini casuali da una cartella con PHP

Categoria: Php Inserito il: 03-11-2012 Stampa (15279 click)

Recentemente un utente mi ha richiesto delle informazioni su un vecchio articolo intitolato "Visualizzare immagini random da una cartella" e pubblicato su questo sito nel (tecnologicamente) lontano 2007; la segnalazione mi ha permesso di effettuare un aggiornamento del codice proposto che mancava, per esempio, di un controllo sull'estensione PNG; "M." però mi chiedeva se fosse possibile estrarre più di una singola immagine casuale da una directory, ma a questo scopo una semplice modifica non sarebbe bastata.

Così ho deciso di riscrivere l'applicazione rivedendo le parti relative al controllo delle estensioni, questa volta operato con la funzione pathinfo(), al conteggio dei file visualizzabili e all'estrazione delle immagini; il risultato della revisione è stato il seguente:

// definiamo il percorso della cartella d'origine
$path = "img/";
// stabiliamo i formati consentiti
$formati = array('gif','jpg','bmp','png');
// apriamo la cartella che contiene le immagini
$open = opendir($path);
	// leggiamo tutte le immagini con un ciclo e
	// e estraiamo soltanto quelle con estensione consentita
	$img = array();
	while(false !== ($f=readdir($open))) {
		$path_info = pathinfo($f);
		if(in_array($path_info['extension'],$formati)){
          $img[]=$f;
     }
  }
	// contiamo le immagini disponibili
	$count = count($img);
	// se il risultato del conteggio è maggiore di 0...
	if($count!=0)
  {
	// ...stabiliamo un numero massimo di immagini da visualizzare
	$limit = 6;
	// se però il numero delle immagini è inferiore al valore massimo...
	if($count < $limit){
		// ...allora le visualizzeremo tutte
		$limit = $count;
	}
		// procediamo con l'estrazione random
  		for ($i = 1; $i <= $limit; ++$i) {
  			$info = rand(0,($count-1));
  			echo "<img src=\"".$path.$img[$info]."\">";
			}
  }else{
	// notifica in caso di assenza di immagini
	echo "Non sono presenti immagini nella directory.";
}

In questo modo, posto per esempio di voler estrarre un massimo di 6 immagini random alla volta, lo script controllerà il numero di quelle dispobili nella cartella e, se esso dovesse essere inferiore al limite imposto, le estrarrà tutte.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle pił importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Un cerchio perfetto con PHP e GD2
Questo piccolo script, abbastanza semplice, propone un esempio riguardante l'azione delle librerie "GD2" in PHP. Creeremo un piccolo cerchio nero... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti