|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
[PHP][Newbie] problema stampa array
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!
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Feb 2001
Città: Mondovì (CN)
Messaggi: 39
|
Tranquillo funziona...
Ciao,
in realtà lo script funziona, mi spiego: "." e ".." sono i riferimenti alla directory corrente ed a quella padre ( la dir immediatamente superiore nell'albero, in pratica la cartella che contiene quella che passi alla funzione). Ricapitolando: . = riferimento alla directory corrente .. = riferimento alla directory padre ale djz quattro oggetti di tipo <DIR> , il contatore segna 4, i primi due vengono visti come directory a livello di filesystem, almeno sotto prompt dei comandi windows. Se vuoi prova a fare questo test:
Ciao
__________________
Zoalord |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
ah si è vero!!...i riferimenti alle cartelle corrente e superiore!...grazie mille...mi stavo incasinando per niente...grazie mi hai chiarito le idee prima che ci perdessi la testa...
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Feb 2001
Città: Mondovì (CN)
Messaggi: 39
|
Ma figurati, ci mancherebbe, ciao.
__________________
Zoalord |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:19.



















