Ho trovato in rete questa funzione e ringrazio l'autore Giacobbe85 per averla condivisa.
La funzione funzione piuttosto bene, ma purtroppo i link non vengono visualizzati in ordine alfabetico.
Ho cercato di ovviare a questo inconveniente, ma essendo alle prime armi con il PHP non sono riuscito a risolvere il problema.
Purtroppo dovrei sistemare la cosa anche in tempi piuttosto brevi perchè sto già usando la funzione.
Spero che qualcuno mi possa fornire le indicazioni utili per sistemare il tutto.
Ecco la funzione:
<?PHP
# Questa funzione permette di visualizzare un elenco a albero dei file e delle sottocartelle contenuti in $base.
# Ciascun nome visualizzato è un link al file.
# Copyright: Isacco Coccato - www.giacobbe85.altervista.org
# NOTE:
# - Quando si specifica il percorso, NON mettere / alla fine.
# - Le immagini dei file e delle cartelle devono essere nella directory foto/
function elenco_dir($base)
{
$dir_vuota=1; # Flag per il controllo della directory vuota
if ($handle_dir = opendir($base)) # Apre la directory, e verifica che il percorso sia corretto
{
echo "<UL class=\"testo\">\n";
while (false!==($dir = readdir($handle_dir))) # Legge una voce del finchè non è finita la directory, e la memorizza in $dir
{
if ($dir!="." && $dir!="..") #Evita di stampare "." e ".."
{
$dir_vuota=0;
if(is_dir($base. "/" .$dir))
{
# Codice nel caso di directory
echo '<LI style="list-style-image: url(foto/cartella.gif)"><B>' . $dir . "</B>\n";
elenco_dir($base. "/" .$dir);
echo "</LI>\n";
}
else
{
#Codice nel caso di file
# Evita di stampare alcuni tipi di file
# Elimina l'estensione dei file, qualunque sia la sua lunghezza, e anche se compaiono altri punti nel nome del file
if ($dir != "." && $dir != ".." && $dir != "file_da_non_mostrare.est" && substr($dir,-3,3) != "estensione_da_non_mostrare")
{
echo '<LI style="list-style-image: url(foto/file.gif)"><A href="' .$base . '/' . $dir . '">' . str_replace('_', ' ', substr($dir,0, strrpos($dir,"."))) . "</A></LI>\n";
}
}
}
}
if ($dir_vuota==1) echo '<LI class="testo" style="list-style-image: url(foto/sbagliato.gif)">Nessun file presente</LI>';
echo "</UL><BR>";
closedir($handle_dir);
}
else #Codice nel caso di percorso non trovato
{
echo "Percorso errato";
}
}
# Chiamata della funzione come esempio
elenco_dir(".");
?>