有opendir / readdir的故障吗?

时间:2010-04-27 03:21:44

标签: php active-directory

这是我的PHP代码:

<?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目录?

2 个答案:

答案 0 :(得分:1)

is_dir的路径是相对于基本文件的,所以你真的需要做一个像

这样的测试
is_dir($styles_dir . '/' . $file)

请注意,...“目录”会屏蔽它,因为这些目录无处不在。

答案 1 :(得分:1)

您需要在目录名前加上文件名,因为is_dir相对于当前目录有效。

更改

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

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

或者,您可以使用chdir将目录更改为$styles_dir,然后您当前的代码就可以使用。