Re_Kotc
27-08-2008, 18:59
ciao a tutti, ho scritto uno script php che in teoria dovrebbe ricevere come parametro una directory e poi salvarmi in un array i nomi di tutte le directory che trova al suo interno, per farlo mi sono appoggiato a una funzione che ho trovato online, ma c'è qualcosa che non funziona, vi posto il codice :
function elencaDirectory($dirname){
echo "<p>Sono all'inizio della funzione!</p>";
$counter = 0;
$arraydirectory=Array();
if(file_exists($dirname)){
$handle = opendir($dirname);
while (false !== ($dir = readdir($handle))) {
if(is_dir($dirname.$dir)){
array_push($arraydirectory,$dir);
$counter++;
print $counter;
print "counter aggiornato";
print "<br>";
}
}
$handle = closedir($handle);
}
sort($arraydirectory);
echo "<p>Sono alla fine della funzione!</p>";
return $arraydirectory;
}
//prima fase, salvo in arraydirectory l'elenco delle cartelle contenute nella cartella principale
$counter = 0;
$maindirectory = "C:/TESTMP3/";
$arraydirectory=array();
$arraydirectory=elencaDirectory($maindirectory);
$counter = count($arraydirectory);
for ($i=0; $i<$counter; $i++)
{
print $arraydirectory[$i] ;
print "<br>";
}
ho utilizzato la variabile counter all'interno della funzione elencafiles per vedere se iterava il numero corretto di volte..ma c'è qualcosa di strano, infatti come output ottengo:
1counter aggiornato
2counter aggiornato
3counter aggiornato
4counter aggiornato
Sono alla fine della funzione!
.
..
ale
djz
i nomi delle due cartelle sono corretti, ma il punto e i due puntini stampati cosa sarebbero??..e poi perchè il counter raggiunge il valore 4 se le directory contenute sono solo 2? ...thanks!
function elencaDirectory($dirname){
echo "<p>Sono all'inizio della funzione!</p>";
$counter = 0;
$arraydirectory=Array();
if(file_exists($dirname)){
$handle = opendir($dirname);
while (false !== ($dir = readdir($handle))) {
if(is_dir($dirname.$dir)){
array_push($arraydirectory,$dir);
$counter++;
print $counter;
print "counter aggiornato";
print "<br>";
}
}
$handle = closedir($handle);
}
sort($arraydirectory);
echo "<p>Sono alla fine della funzione!</p>";
return $arraydirectory;
}
//prima fase, salvo in arraydirectory l'elenco delle cartelle contenute nella cartella principale
$counter = 0;
$maindirectory = "C:/TESTMP3/";
$arraydirectory=array();
$arraydirectory=elencaDirectory($maindirectory);
$counter = count($arraydirectory);
for ($i=0; $i<$counter; $i++)
{
print $arraydirectory[$i] ;
print "<br>";
}
ho utilizzato la variabile counter all'interno della funzione elencafiles per vedere se iterava il numero corretto di volte..ma c'è qualcosa di strano, infatti come output ottengo:
1counter aggiornato
2counter aggiornato
3counter aggiornato
4counter aggiornato
Sono alla fine della funzione!
.
..
ale
djz
i nomi delle due cartelle sono corretti, ma il punto e i due puntini stampati cosa sarebbero??..e poi perchè il counter raggiunge il valore 4 se le directory contenute sono solo 2? ...thanks!