Opendir / readdir ile bir aksaklık var mı?

2 Cevap php

İşte benim PHP kodu:

<?php

// Enumerate the directories in styles
$styles_dir = 'styles/';

if($handle = opendir($styles_dir))
{
    while(FALSE !== ($file = readdir($handle)))
    {
        echo $file . '(' . is_dir($file) . ')<br>';
    }
}
?>

Burada dizinleri vardır styles:

Ve burada çıktı:

.(1)
..(1)
forest()
industrial()

Neden forest ve industrial dizinleri değil mi?

2 Cevap

Için yol is_dir baz dosyasına göre, böylece gerçekten böyle bir testi yapmak gerekir

is_dir($styles_dir . '/' . $file)

Bu her yerde var bu . ve .. "dizin" için maskeli unutmayın.

Sen is_dir geçerli dizine göre çalışır gibi dosya adı dizin adı öneki gerekir.

Değişim

echo $file . '(' . is_dir($file) . ')<br>';

karşı

echo $file . '(' . is_dir("$styles_dir/$file") . ')<br>';

Alternatively you can change the direckarşıry karşı $styles_dir using chdir and then your current code will work.