Possiamo creare una galleria di immagini in PHP in due modi: usando gli iteratori di directory di PHP o le tradizionali funzioni per la gestione dei file e delle directory. In questo articolo vedremo come utilizzare il secondo approccio, che ha il vantaggio di avere una maggiore retrocompatibilità con versioni meno recenti di PHP.

La prima cosa da fare è aprire la directory contenente le immagini:


$dir = opendir('img');
$images = array();
$html = '';

La directory img contiene dei file JPEG. Riempiamo quindi l'array $images usando le espressioni regolari:


while($fname = readdir($dir)) {
     
     if(preg_match('/[.]jpg$/', $fname)) {
         
         $images[] = $fname;
         
     }
     
     
     
}  
 
closedir($dir);

La funzione readdir() legge un file alla volta, quindi $fname conterrà di volta in volta il file JPEG corrente. A questo punto usiamo le espressioni regolari per essere certi che i file che inseriremo nel nostro array sono del tipo voluto. Quindi chiudiamo l'handle della directory usando closedir().

Ora dobbiamo disporre le immagini in ordine alfabetico usando il nome dei file:


function imgSort($a, $b)
 {
     $a1 = str_replace('.jpg', '', $a);
     $a2 = str_replace('.jpg', '', $b);
     
     return $a1 > $a2;
     
 }
 
usort($images, 'imgSort');

Passiamo alla funzione usort() il nostro array ordinandolo secondo l'ordine stabilito nella funzione imgSort(). Infine non ci resta che eseguire un ciclo sul nostro array e assemblare la risultante stringa HTML:


foreach($images as $img) {
     
     $html .= '<img src="img/' . $img . '" alt="" />' . "\n";
     
 }
 
 
 
echo $html;

Potete visionare l'esempio finale in questa pagina.