2013-04-02 11 views
142

Tek bir klasördeki tüm dosyaların PHP ile listelenmesinin en iyi yolu ne olurdu? Bunu yapmak için $ _SERVER işlevi var mı? Kullanıcı adı/dizinindeki tüm dosyaları listelemek ve bu sonucun üzerinden bir bağlantı oluşturmak istiyorum, böylece oraya ulaşmak için dosya adının bağlantısını tıklayabilirim. Teşekkürler!Tüm dizinlerdeki tüm dosyaları listeleme PHP

+7

topak() veya scandir() bariz seçimler –

+0

Eğer bu işlevleri kullanan bir kod örneği verebilir ya da onlar hakkında daha fazla açıklama mı? – Shadowpat

+1

Örnekler ve açıklamalar için - dokümantasyon gerçekten gitmek için en iyi yerdir ... Bu resmi kaynaktır ... – Lix

cevap

157

Kontrol şuna: readdir()

Bu kod biraz belli dizindeki tüm girdileri listelemek olmalıdır:

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

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

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

      echo "$entry\n"; 
     } 
    } 

    closedir($handle); 
} 

Düzenleme: Miah çözümü çok daha şık benim daha olduğunu, şunları yapmalısınız Onun yerine onun çözümünü kullanın.

+1

Bu işe yaradı! Teşekkürler! – Shadowpat

+0

Yardım için sevindim :) –

+0

Orada, sadece köprüler de dahil yaptım! :) – Shadowpat

320

scandir komutunu arıyorsunuz.

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

ardından kod scandir döndü diziden . ve .. kaldırır:

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

Teşekkürler, ancak @Orel Biton kullanacağım başka bir kod yayınladı. Yardımın için minnettarım! – Shadowpat

+18

Bu çok daha şık bir çözümdür. – Christian

+65

Bu daha şık bir çözümdür.Ayrıca $ files = array_diff (scandir ($ path), array ('..', '.')); – kyle