Vedi se può andar bene così:
Come vedi inizialmente mi scarico tutta la directory in un array.codice:function ScanDirectory($Directory) { $MyDirectory = opendir($Directory) or die('Errore'); while ($currentFile = readDir($MyDirectory)) { $theFiles[] = $currentFile; }; closedir($MyDirectory); $Files = preg_grep("/^[A-Za-z0-9]/", $theFiles); sort($Files); echo '<ul>'; foreach($Files as $Entry) { if(is_dir($Directory.'/'.$Entry)) { echo '[*]'.$Entry; ScanDirectory($Directory.'/'.$Entry); echo ''; } else { $cartellautente = $Directory."/".$Entry; echo '[*]'."<a href=\"downloadit.php?file={$cartellautente}\">{$Entry}</a> ".''; } } echo '[/list]'; }
Poi elimino il "." e il ".." con la preg_grep.
Poi ordino.
E infine faccio un foreach sull'array analogo al while che facevi tu.
Ho anche dato una sistemata agli <ul>.
Ti faccio notare che nell'ordinamento su Linux le maiuscole vengono prima delle minuscole, quindi troverai prima i nomi che iniziano con maiuscole, ordinati, e poi, dopo la "Z" si ricomincia con la "a".
Il risultato non è molto bello, a mio avviso, però il sort lavora così.
Fino a lunedì non mi ricollegherò al forum quindi se non ti va bene spero che possa aiutarti qualcun altro.
Ciao

Rispondi quotando