2010-04-27 40 views
2

這是我的PHP代碼:opendir/readdir有問題嗎?

<?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>'; 
    } 
} 
?> 

下面是目錄中styles

http://files.quickmediasolutions.com/php.jpg

,這裏是輸出:

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

爲什麼不forestindustrial目錄?

+0

難道這是一個權限問題?腳本可以使用其中之一嗎? – Anonymous 2010-04-27 03:24:35

+0

我不知道。我會檢查。它應該能夠... – 2010-04-27 03:24:54

+0

是的。它可以成功將'chdir'設置爲'forest'和'industrial'目錄。 – 2010-04-27 03:25:50

回答

1

的路徑is_dir是相對於基本文件,讓你真正需要做的測試類似

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

注意,這是掩蓋了...「目錄」,因爲這些滿天飛。

+0

哦,是啊...... *(猛撞頭牆)* – 2010-04-27 03:29:15

1

您需要將目錄名稱作爲文件名前綴,因爲is_dir相對於當前目錄有效。

變化

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

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

另外,您可以使用chdir將目錄更改爲$styles_dir,然後你當前的代碼將工作。