Visualizzazione contenuto di una cartella e dei file presente sul server php
Autore: Luciano B.Ciao, voglio visualizzare in una paggina del mio sito il contenuto di una cartella e fare in modo che i suoi file possano essere aperti, smanettando sul web ho trovato uno script che mi permette di fare cio', funziona ma non riesco ad allinerare i file e le cartelle, io visualizzo quello riportato in doc1, quello che vorrei realizzare e quello riportato in doc2, lo script che utilizzo è questo:
<?PHP
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(".");
GRAZIE a tutti anticipatamente
Forse era meglio se inserivi il link alla fonte, per evitare "stravolgimenti" di codice e facilitare chi ti vuole aiutare:
http://tinyurl.com/memqzaq
Autore
Grazie lemonsong, pensavo non fosse necessario, comunque la fonte e quella che tu hai linkato, ma io non riesco ad allinearli, come inserisco il suo codice funziona perfettamente, ma riporta sia i file che le cartelle tutto in centro al riquadro e non come mostra lui nel suo sito, puoi aiutarmi?
suppongo che sia solo da settare lo stile dell'oggetto html come da allegato.
@Roberto
Oltre a quanto scritto da Silver credo che dovrai inserire questo CSS per formattare la lista, "annullando" il reset.css che WS adotta:
<style>
.testo {padding-left:40px;}
</style>
Da inserire prima della chiusura del tag HEAD.
Ho provato lo script da te indicato, con qualche modifica.
Lo puoi vedere qui:
http://lemonsong.altervista.org/test_elenco_dir/
Ringrazio stesil per l'aiuto.
_______ oltre il 5° step ________
http://www.unofficialwsx5.com
Autore
Ciao, volevo rigraziarvi de supporto funziona perfettamente, ringrazio anche giacobbe85, perchi volesse lo script e reperibbile http://www.giacobbe85.altervista.org/pagine/Link.php
Buona Girnata
Autore
Scusa Lemonsong, potresti perfavore pubblicare lo script con le tue modifiche che mi piace e vorrei integrarlo.
Grazie
Autore
Scusa non avevo notato il link sul Demo, Grazie ancora
Autore
Ciao Lemonsong, vorrei vsualizzare le cartelle chiuse e non espase cosi da cliccarle e farle aprire, sipuo fare?, ciao grazie
Vedi se una cosa del genere può andare bene:
http://lemonsong.altervista.org/test_elenco_dir/pagina-1.php
Trovi tutto nello zip
Ringrazio stesil per l'aiuto.
_______ oltre il 5° step ________
http://www.unofficialwsx5.com
Autore
Ok, va benissimo, grazie, vorrei farti vedere il tutto ma è un sito intranet della mia azienda.
Grazie ancora sempre disponibile e gentile
Autore
Buona giornata a Tutti
Ciao lesmonson
volevo chiederti, ho visto nelle modifiche che hai apportato al codice la distinzione del tipo di file, ho provato a fare qualche modifica ma mi da sempre errore, io volevo aggiungere che per i file Word compaia un icona, per i PDF un'anlta e per i file excel un'altra.
Sicuro che tu riuscirai in questo, anticipatamente ti ringrazio
Autore
Autore
Lemonsong ho fatto un po di casino con il tuo nik
Con l'aiuto di stesil (che ringrazio) ho aggiornato la pagina 1.
Le icone sono state fatte in fretta.
P.S.
Per il nick non ti preoccupare
_______ oltre il 5° step ________
http://www.unofficialwsx5.com
Autore
Grazie
lemonsong e stesil
Vi ringrazio e provo il tutto e vi faccio sapere se funzione in rete locale
Autore
Ciao
lemonsong e stesil
Vi ringrazio nuovamente per l'aiuto datomi fin ora.
Provato il tutto per i file funziona perfettamente, ma ho riscontrato un problema, non apre i file immaggine, ossia compare per lungo tempo i cerchietto che sta carricando ma non apre nulla
... se vuoi ancora ottenere risposte, devi riaprire l'Argomento, che hai chiuso con RISOLTO...
.
ciao
Autore
Ciao
lemonsong e stesil
Vi ringrazio nuovamente per l'aiuto datomi fin ora.
Provato il tutto per i file funziona perfettamente, ma ho riscontrato un problema, non apre i file immaggine, ossia compare per lungo tempo i cerchietto che sta carricando ma non apre nulla
Ciao
L'esempio online funziona e lo script funziona anche su web server in locale. E' difficile capire il problema non potendo vedere nulla.
Qualche domanda: riscontravi l'errore anche con il primo codice? Il nome dell'immagine viene correttamente visualizzato? Quanto pesano le immagini?
Autore
No con il primo Codice funzionava perfettamente, adesso non apre solo i file di immagini, ma se invece di apre nel box vogli farle aprire come un file normale quale parte del codice devo togliere?
Grazie stesil
Autore
I nomi sono visualizzati bene, i file sono piccoli (sono icone), la cosa strana e che resta con "la rotella che gira" e non da nessun messaggio d'errore
Autore
Adesso anche se rimetto il vecchio codice mi da lo stesso problema........ quindi cosa potrebbe essere successo?...
Raggioniamo
Autore
perchè solo i file immagine? ..............
Autore
Ciao lemonsong, stesil
Volevo chiedervi, per far in modo che le immagini vengano aperte con il programma predefinito dall'utente e non nel Box di Website, quale parte devo togliere dallo script? anche perche molte volte sià l'esigenza di modificarle e di scaricarle aggilmente le immagini.
Ciao Grazie
OK, per l'ennesima volta abbiamo modificato il codice e aggiunto un'altra variante:
http://lemonsong.altervista.org/test_elenco_dir/pagina-2.php
Se avrai dei problemi posta un link con la tua prova, altrimenti diventa un... "lavoro"
Autore
Ciao lemonsong
Grazie funziona perfetttttttaaaaammmente.
Scusa per il ritardo
P.S. hai percaso un link da suggerirmi dove posso trovare delle varianti al guestbook?
Prego.
Conviene aprire un nuovo post per l'ultima domanda.
Non riesco a trovare il codice della funzione test_elenco_dir.php.
Il link mi rimanda al demo, ma del codice non c'è traccia.
Mi potete aiutare?
Tindarosv
Ho risposto alla tua mail, forse ti è andata nello spam.
Ripeto qui:
Grazie per la risposta.
Aspetto di sapere qualcosa per quanto riguarda la visualizzazione di cartelle e file in ordine alfabetico.
Aggiornato l'esempio utilizzando questo plugin jQuery:
http://tinysort.sjeiti.com/
Autore
Buona Giornata
Volevo chiedervi come posso fare per visualizzare prima le director e poi i files? e non l'ordine alfabetico.
Ciao Grazie
Sempre utilizzando quel plugin jQuery, puoi provare qualcosa del genere:
Ho aggiornato la Variante 1:
http://lemonsong.altervista.org/test_elenco_dir/pagina-1.php
Nel sorgente, trovi tutto.
Autore
Ciao lemonsong
inserito quel plugin, ma non è cambiato nulla, fa sempre l'ordine alfabetico, io sto utilizzando quello senza shobox.
Grazie
Hai scaricato il plugin (jquery.tinysort.js) ed inserito il codice correttamente?
Hai inserito quella riga di codice (2 post fa) nel posto giusto?
Se sì:
Puoi prenderti uno spazio, per esempio, su Altervista e far vedere qualcosa.
Autore
dove devo aggiungere la riga di codice?
$('.testo > li').tsort('li',{attr:'class'});
Io ho copiato la variante 1 e sostituita la vecchia
Se avrai dei problemi posta un link con la tua prova, altrimenti diventa un... "lavoro"
Puoi prenderti uno spazio, per esempio, su Altervista e far vedere qualcosa.
Autore
Ciao lemonsong
risolto il problema, ma volevo chiederti se volessi visualizzare le datre di creazione dei file cosa devo inserire nello script?
Buona giornata
Ciao, puoi utilizzare la funzione filemtime di PHP da inserire all'interno di ogni echo che stampa l'elenco delle cartelle e dei file. Vedi l'esempio 1 della documentazione:
http://php.net/manual/it/function.filemtime.php
Si può ottenere una cosa del genere: http://lemonsong.altervista.org/test_elenco_dir/pagina-1.php
Autore
ciao Stesil
Ho scaricatoil file ws10...... dal link pagina-1.php, ma non c'è alcuna modifica sullo script, dove devo inserire la funzione filimtime?
Ciao Grazie
Infatti, non è stato aggiornato dal 05/09/2014
dove devo inserire la funzione filimtime?
Autore
Ciao lemonsong
Quindi non verrà aggiornato?
Autore
Ciao
smanettando ho risolto così:
echo "Ultima modifica: " . date("d/m/Y", filemtime("$base"));
ma non riesco a giustificare allineando la data a destra della finestra, come posso fare?
ciao e Grazie
Autore
xkè mi visualizza la data odierna e non quella quando è stato creato il file?
E' stato aggiornato il file .zip (Variante 1).
Se non metterai un link alle tue prove, non pretendere più risposte da parte mia
Autore
Grazie
aprirò una pagina di prova su altervista
sei cattivo pero'
Grazie mille comunque per tutte le dritte finora datemi
Ciao Buona Domenica
Ah sì?! Dopo 14 risposte di assistenza sono cattivo?
D'ora in poi lo sarò
Autore
lemonson, Grazie di tutte davvero, siete tutti una preziosa inciclopedia per noi "fanciulli" della materia, poi è divertente scambiarsi opinioni con persone che un giorno dirai "ma chi è questo?" e magari il giorno dopo è difianco a te a predere il caffè al bar e non lo sai, Grazie mille di tutto.
Autore
Ciao a tutti, in special modo a lemonsong "senò mi si offende"
ho personalizzato lo script con i vostri suggerimenti ma non riesco ad effettuare due operazioni:
1 - volevo allineare immagine icone con le righe del nome file e la data;
2 - volevo poi portare le directori in alto rispetto ai file.
come richiesto ho creato un link su altervista.
http://lucas19752008.altervista.org/index.php
Grazie a tutti per i preziosi consigli.
Autore
il file "personalizzato" contiene le mie modifiche
Scusate ho utilizzato in parte il vostro script con qualche personalizzazione nel body di una pagina .php, ma non riesco a capire come fare ad espandere le cartelle quando le clicco.
Mi spiego lo script mi lista tutte le cartelle,sottocartelle e file ma avrei bisogno che una una volta cliccata su una delle cartelle si espande e si veda il contenuto di quella cartella con eventuali sottocartele e file, cosi se clicco sul di un'altra cartella e non tutto tutto l'albero gia espanso dall'inizio alla fine.
esempio:
parto dalla posizione dove mi scansione delle cartelle suppongo 4, se clicco la cartelle 1 si apre con file ed eventuali sottocartelle , la stessa cosa per la cartella 2,cartella 3, cartella 4 e le loro eventuali sottocartelle.
In pratica quello che si fa in :
http://lemonsong.altervista.org/test_elenco_dir/pagina-1.php
Aiuto sono in delirio assoluto
In particolare nel file .txt
Domanda: ma hai WS?
Se sì, che versione?
Quale zip ? su ws10_elenco_dir accordation ? fatto ma parte la formatazzione con i css il funzionamento è lo stesso.
Probrabilmente è una mia difficolta nel non sapere come richiamare la funzione con il nome della cartella. Cmq ora allego il file.
Si ho ws anche se in questo caso non l'ho usato, la versione è la 9.
Visto che non stai usando WS, non credo che Answers sia il posto giusto per continuare, comunque assicurati di avere la libreria jQuery caricata perché il codice di quell'esempio fa uso di jQuery per l'effetto accordion sulle cartelle.
Devi anche apportare le modifiche necessarie al file php, perché funzioni l'effetto accordion.
Ti consiglio di confrontare i due file php per trovare da solo le modifiche che servono.
Lo script jQuery, come già detto, lo trovi nel file txt oppure nel sorgente della pagina online.
AHH che casino, ok allora uso Ws e cerco questa libreria jQuery ,che non ho mai usato.
Ma quindi ora ricapitolando quali sono i file necessari per far si che funzioni come nell'esempio variante 1................io il file txt che dici tu quale è tipo quello che ho allegato.
ora sono incartatissimo
Grazie per la pazienza
WS carica già una libreria jQuery
Rileggi con attenzione questo chilometrico post etc...
Ti ricordo che l'esempio online è fatto con la 10
La variante che potresti utilizzare forse senza "problemi" è la seconda: pagina-2.php (senza showbox)
Perfetto provato e funziona tutto solo una cosa avendo la cartella contenente il file .php della funzione elenca_dir due livelli sotto rispetto a dove sono le cartelle pcss,res,ecc
il colore del nome del file blu è uguale a quello della data e ora , che doveva essere nero.
Dove posos provare a modificare il colore solo per file o data e ora in maniera da distinguerli:
la parte del codice è questa per esempio pagina 1 :
echo '<li style="list-style-image: url(foto/immagine.gif)"><a class="imCssLink" href="' .$base . '/' . $dir . '" onclick="return x5engine.imShowBox({ swipeImg: \\'res/imSwipe.png\\', closeImg: \\'res/imClose.png\\', loadingImg: \\'res/imLoad.gif\\', startIndex: 0, media:[{type: \\'image\\', url: \\'' .$base . '/' . $dir . '\\', width: '. $imgH[0] .', height: '. $imgH[1] .', description: \\'<p class=sbDesc>'. $nomeImg .'</p>\\'}]}, 0, this);">' . $nomeImg . "</a> (" . date ("d/m/Y", filemtime($base. "/" .$dir)).")</li>\n"; //aggiunto data ultima modifica
Grazie tante anche per le risposte precedenti
Non vedo licenze nel tuo profilo, regolarizzati.
=====
Quel codice dà errori di sintassi, probabilmente Answers lo ha modificato.
Posta un link per far vedere qualcosa ed allega il file .php da te modificato.
Autore
Ciao a tutti
ho apportato qualche modifica al codice, ma non riesco ad allineare immaggine con il testo "nome file e data" come posso fare, vi allego il link di prova
http://www.lucas19752008.altervista.org/index.php
ho provato ad inserire ( float: left; ) ma sballatutto sposta le immaggini a destra ma le allinea.
ciao e Grazie
Buon Anno
Hai degli errori di sintassi, di validazione e un errore JS.
Abbiamo aggiornato la Variante 1 inserendo uno span con classe date
Prova a dare un'occhiata.
Autore
Ciao lemonsong
Non riesco a risolvere un dilemma, le tue modifiche pubblicate su internet funzionano perfettamente le riporto sul server sulla rete intranet e non mi ordina più le directori mettendole in alto, ma mette tutto in ordine alfabetico, cosa non va?
Grazie
Rileggiti da questo post in poi:
https://helpcenter.websitex5.com/post/98389#33
E qui hai detto che avevi risolto:
https://helpcenter.websitex5.com/post/98389#39
Autore
Ciao lemonsong scusami ma non ricordo come ho risolto hai tempi il problema, comunque, ho inserito prima del tag - head la stringa ( $('.testo > li').tsort('li',{attr:'class'});) come nella variante 1, ma dove devo inserire il file (jquery.tinysort.js)? ho il suo contenuto?
Grazie abbi pazienza
Se visualizzi il sorgente della variante 1 trovi scritto:
Ti consiglio di leggerti qualche guida online sui linguaggi di base: HTML, CSS e JS
Questo post è durato fin troppo, buon lavoro.
Autore
Ciao lemonsong ho seguito il tuo consiglio e leggendo qua e la ho risolto, come puoi vedere dal link
http://www.lucas19752008.altervista.org/pagina-1.php
volevo ringraziarvi,
Grazie Stesil e Lemonsong