Script php: Elencare file contenuti in cartella
difficoltà:

Script simili
19/7/2006
Questa funzione elenca i file contenuti in una cartella:
function elencafiles($dirname){
$arrayfiles=Array();
if(file_exists($dirname)){
$handle = opendir($dirname);
while (false !== ($file = readdir($handle))) {
if(is_file($dirname.$file)){
array_push($arrayfiles,$file);
}
}
$handle = closedir($handle);
}
sort($arrayfiles);
return $arrayfiles;
}
$arrayfile=array();
$arrayfile=elencafiles("public/folder/");
La funzione restituisce un array contenente l'elenco dei file contenuti nella cartella in ordine alfabetico.Se vogliamo filtrare solo i file della cartella con data esttensione, ad esempio solo immagini, possiamo usare la seguente funzione:
function elencafiles($dirname,$arrayext){
$arrayfiles=Array();
if(file_exists($dirname)){
$handle = opendir($dirname);
while (false !== ($file = readdir($handle))) {
if(is_file($dirname.$file)){
$ext = strtolower(substr($file, strrpos($file, "."), strlen($file)-strrpos($file, ".")));
if(in_array($ext,$arrayext)){
array_push($arrayfiles,$file);
}
}
}
$handle = closedir($handle);
}
sort($arrayfiles);
return $arrayfiles;
}
$array_extimg=array('.jpg','.jpeg','.gif');
$arrayfile=array();
$arrayfile=elencafiles("public/folder/",$array_extimg);
Si passa cosi alla funzione anche l'array delle estensioni desiderate.
Social:
Donazione:
Permalink:
Tag:
Script Simili:
Script asp: Elencare file e sottocartelle di una cartella
Script php: Eliminare file e cartelle
Script php: Leggere file xls di excel con php
Script php: Impedire accesso diretto ai file tramite htaccess
Permalink:
Link utili:
Vota:
Commenti
19/11/2007 21:28:39
Se usi la prima funzione dello script potrai richiamare alla fine:
$arrayfile=elencafiles("public/");
poi fare un ciclo per scrivere tutti i file:
for($a=0;$a<count($arrayfile);$a++){
echo "<a href='public/".$arrayfile[$a]."'>".$arrayfile[$a]."</a>";
}
8/2/2008 4:26:03
non riesco ad inserire il codice.
poi perché il codice non inizia con <?php e finisce con ?>
Grazie
Luca
8/2/2008 9:15:15
@luca:
chiaramente il codice nella pagina php lo devi inserire con i tag php <? ?>
8/2/2008 14:14:45
Fabio scusa ma non riesco:
anche io ho la cartella che contiene i file di nome public
grazie mille
<body>
<?
function elencafiles($dirname){
$arrayfiles=Array();
if(file_exists($dirname)){
$handle = opendir($dirname);
while (false !== ($file = readdir($handle))) {
if(is_file($dirname.$file)){
array_push($arrayfiles,$file);
}
}
$handle = closedir($handle);
}
sort($arrayfiles);
return $arrayfiles;
}
$arrayfile=array();
$arrayfile=elencafiles("public/");
?>
</body>
8/2/2008 14:18:47
Prova così:
$arrayfile=elencafiles($_SERVER['DOCUMENT_ROOT']."/public/");
8/2/2008 15:02:26
nada de nada
8/2/2008 15:10:19
...ma stampi l'array?
se nn l'hai ancora fatto... alla fine aggiungi:
for($i=0;$i<count($arrayfile);$i++) {
echo $arrayfile[$i]."<br>";
}
8/2/2008 15:34:45
Scusa l' assillo ma anche aggiungendo
or($i=0;$i<count($arrayfile);$i++) {
echo $arrayfile[$i]."<br>";
}
niente, ho provato sia con : $arrayfile=elencafiles($_SERVER['DOCUMENT_ROOT']."/public/");
che con: $arrayfile=elencafiles("public/");
non mi da nessun errore ma la pagina rimane bianca.
dove sbaglierò ?
11/2/2008 11:09:58
ho provato anche io e nn funziona..idem anche a me nn esce nessun errore..
forse dipende dalle vari versione di php..
bo io ho la 5 nn esce nulla..
ho fatto anche un controllo subito al ciclo
while (false !== ($file = readdir($handle))) {
e mi escono 2 risultati in +
11/2/2008 11:24:45
i due risultati in + possono ssere i file nascosti..di solito c'è il file .db.
cmq ho riprovato ora e funziona correttamente.
prova a copiar e incollare:
function elencafiles($dirname){
$arrayfiles=Array();
if(file_exists($dirname)){
$handle = opendir($dirname);
while (false !== ($file = readdir($handle))) {
if(is_file($dirname.$file)){
array_push($arrayfiles,$file);
}
}
$handle = closedir($handle);
}
sort($arrayfiles);
return $arrayfiles;
}
$arrayfile=array();
$arrayfile=elencafiles($_SERVER['DOCUMENT_ROOT']."/public/");
print_r($arrayfile);
14/2/2008 9:53:07
ciao a rieccomi..se oltre ad elencare i file ci fossero anche delle cartelle come si fa?
cioè io vorrei l elenco dei file e delle cartelle che sono all interno di una directory..
è possibile farlo con il tuo script
14/2/2008 15:46:28
invece di
if(is_file($dirname.$file)){
array_push($arrayfiles,$file);
}
metti solo array_push($arrayfiles,$file);
ti elenca anche le directory
8/3/2008 17:43:28
Scusate, a me funziona perfettamente seguendo i consigli di Fabio, ma ora vorrei chiedere:
Se volessi convertire questo elenco di file in link, cosi da aprire o scaricare i relativi files?
Come si fa?
9/3/2008 16:47:47
quando stampi l'elenco dei file ci piazzi il link:
for($i=0;$i<count($arrayfile);$i++) {
echo "<a href='http://sito.it/cartella/".$arrayfile[$i]."'>".$arrayfile[$i]."</a><br>";
}
31/3/2008 2:40:15
e se volessi elencare tutti i file contenuti in un dvd dati? e magari metterli in un db?
19/6/2008 13:05:18
ciao, a me funziona perfettamente, solo vorrei sapere come posso fare per ordinare i file non in ordine alfabetico ma per data di creazione
24/6/2008 7:39:09
mi accodo anche io a bono: come si fa per ordinarli per data anzichè per nome?
così facendo, mi elimino la rogna di inserire i numeri progressivi nei nomi, per dargli l'ordine che voglio io...
7/7/2008 13:27:24
o tuttalpiù aggiungere automaticamente un numero progressivo man mano che si aggiungono nuovi files
9/1/2011 18:15:36
Come posso ricavare i file presenti su questo sito? http://ftp.heanet.ie/mirrors/ubuntu-cdimage/kubuntu/releases/lucid/release/
È possibile una cosa del genere??
9/1/2012 10:58:53
Ciao,
grazie per lo script, è utilissimo! E' possibile ordinare gli elementi in base alla data di caricamento di questi sul server?
Grazie

Feed Rss
19/11/2007 20:56:54
questo script fa al caso mio, ma come devo fare per farlo funzionare?
la cartella che contiene i file si chiama public, come devo modificare il codice sopra?
inoltre dove e come devo inserire il codice sopra?