2013-04-02 10 views
142

Quale sarebbe il modo migliore per elencare tutti i file in una directory con PHP? C'è una funzione $ _SERVER per fare questo? Vorrei elencare tutti i file nella directory/nomi utente e ripetere il ciclo su quel risultato con un collegamento, in modo che sia sufficiente fare clic sul collegamento ipertestuale del nome file per arrivarci. Grazie!Elenca tutti i file in una directory PHP

+7

glob() o scandir() sono scelte ovvie –

+0

potrebbe dare un esempio di codice che utilizza queste funzioni o spiegare di più su di loro? – Shadowpat

+1

Per esempi e spiegazioni - la documentazione è davvero il posto migliore dove andare ... È la fonte ufficiale ... – Lix

risposta

157

Check this out: readdir()

Questo bit di codice dovrebbe elencare tutte le voci in una determinata directory:

if ($handle = opendir('.')) { 

    while (false !== ($entry = readdir($handle))) { 

     if ($entry != "." && $entry != "..") { 

      echo "$entry\n"; 
     } 
    } 

    closedir($handle); 
} 

Edit: La soluzione di Miah è molto più elegante del mio, si dovrebbe usa invece la sua soluzione.

+1

Ha funzionato! Grazie! – Shadowpat

+0

Felice di aiutare :) –

+0

Lì, ho appena fatto includere anche i collegamenti ipertestuali! :) – Shadowpat

320

Si sta cercando il comando scandir.

$path = '/tmp'; 
$files = scandir($path); 

Seguendo codice rimuoverà . e .. dalla matrice restituita da scandir:

$files = array_diff(scandir($path), array('.', '..')); 
+0

Grazie, ma @Orel Biton ha pubblicato un altro codice che userò. Apprezzo il tuo aiuto! – Shadowpat

+18

Questa è una soluzione molto più elegante. – Christian

+65

Questa è la soluzione più elegante.Vorrei anche aggiungere/raccomandare $ files = array_diff (scandir ($ path), array ('..', '.')); – kyle

Problemi correlati