2011-04-02 196 views
0

我有一個名爲client_images的目錄,它有dir_1,dir_2dir_3作爲子目錄。當我運行以下命令:爲什麼scandir()爲目錄返回false?

foreach(scandir("client_images") as $key => $value){ 
    if(is_dir($value)){ 
     echo $value." is a dir.<br>"; 
    } 
    else{ 
     echo $value." is not a dir.<br>"; 
    } 
} 

我得到:

. is a dir. 
.. is a dir. 
dir_1 is not a dir. 
dir_2 is not a dir. 
dir_3 is not a dir. 

爲什麼PHP返回false的目錄?

回答

2

你在做scandir("client_images");結果是裸文件名沒有client_images/路徑,所以它正在當前目錄中查找它們。自然,.之間的唯一目錄可能是相同的。和client_images/...,這些條目出現在所有目錄中。

+0

謝謝,那麼如何檢查裏面client_images迪爾斯? – Babiker 2011-04-02 04:59:57

+0

將''client_images /「'(或Windows相當於)傳遞給'is_dir()'的路徑。 – geekosaur 2011-04-02 05:01:33

0

您可以使用DirectoryIterators來掃描目錄。使用下面的代碼來檢查,如果一個文件是一個目錄或不

$iterator = new DirectoryIterator('path'); 
foreach ($iterator as $fileinfo) { 
    if ($fileinfo->isDir()) { 
     echo $fileinfo->getFilename() . "\n"; 
    } 
} 
0
$mydir = "client_images/"; 

foreach(scandir($mydir) as $key => $value){ 
    if(is_dir($mydir . $value)){ 
    echo $value." is a dir.<br>"; 
    } 
    else{ 
    echo $value." is not a dir.<br>"; 
    } 
    } 
相關問題