2011-10-07 23 views
10

olmadan dizindeki dosyaları listelemek nasıl Bu benim kod başlangıç ​​kısmı bir dizindeki dosyaları listelemek için:PHP: listeleme alt dizinleri

$files = scandir($dir); 
$array = array(); 
foreach($files as $file) 
{ 
    if($file != '.' && $file != '..' && !is_dir($file)){ 
      .... 

Ben listeleme olmadan dizindeki tüm dosyaları listelemek çalışıyorum alt klasörler. Kod çalışıyor, ancak hem dosya ve klasörleri gösteriyor. Yukarıdaki kodumda gördüğünüz gibi !is_dir($file) ekledim, ancak sonuçlar yine aynı.

cevap

18

Şöyle olmalı, sanırım:

$files = scandir($dir); 
foreach($files as $file) 
{ 
    if(is_file($dir.$file)){ 
     .... 
+0

ahhh, işte bu kadar. Thanksss – Pinkie

+1

'.' ve '..' dizinleri, "$ file! = '.' && $ file! = '..' && & quot; ifadesinde gereksizdir. Ve takip eden dir seperatör hiçbir fark yaratmaz. – symcbean

+0

Teşekkürler @symcbean. Haklısın. Onları çıkardım. – Pinkie

8

Sadece is_file kullanın.

Örnek:

foreach($files as $file) 
{ 
    if(is_file($file)) 
    { 
     // Something 
    } 
} 
+0

Evet, ama benim spesifik örneğin i is_dir() niçin çalışmadığını öğrenmek istedi. Teşekkürler +1 – Pinkie

1

Ne yüzden basit gibi görünen bir şey için acı! Hiçbir şey benim için işe yaramadı ... Bir sonuç almak için dosya adı benim durumumda olması gereken bir uzantı olduğunu varsadım.

if ($handle = opendir($opendir)) { 
    while (false !== ($entry = readdir($handle))) { 
     $pos = strpos($entry, '.'); 
     if ($entry != "." && $entry != ".." && is_numeric($pos) ) { 

............ Bu görünmediğini kontrol dosyaları tarar

+0

iyi, bunu işaret ettiniz, ama yine de, günlük günlük dosyaları isimleri olmadan noktalar var. – dachi

1

iyi bir giriş. veya .. bir dizide. Ardından dosyaları dışa doğru itin. ve .. yeni dosyalarda [] dizi.

bu deneyin:

$scannedFiles = scandir($fullPath); 
$files = []; 

foreach ($scannedFiles as $file) { 
    if (!in_array(trim($file), ['.', '..'])) { 
     $files[] = $file; 
    } 
} 
+0

Merhaba, ve hoş geldinizStackOverflow. Lütfen koda biraz açıklama ekleyin. – Chaithanya

İlgili konular