Salve forum!
Scrivo qui di seguito per chiedervi una mano per modificare uno script trovato in rete, che mi permette di stampare tutte le directory e i file tramite un grafico ad albero.
Il mio problema è che questo script mi stampa le cose a partire da dove è ubicato il file, mentre a me servirebbe che a prescindere della posizione del file, mi stampi directory e file partendo dalla root principale, quindi tutto il sito.
Es: Se carico il file in "/cartella1/cartella2/cartella3/", deve stamparmi i risultati anche di cartella1 e cartella2, non solo quelli di cartella3, cartella4(contenuta in cartella3),ecc.
Vi lascio qui di seguito il codice, e vi ringrazio in anticipo per il Vostro aiuto!
Codice PHP:
<?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
# 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(".");
?>