我有这个功能:
if (is_dir($dir)) {
//are we able to open it?
if ($dh = opendir($dir)) {
//Let's cycle
while (($subdir = readdir($dh)) !== false) {
if ($subdir != "." && $subdir != "..") {
echo $subdir;
}
}
}
返回:
directory1 , directory2, directory3 etc.. etc..
无论如何,如果我这样做:
if (is_dir($dir)) {
//are we able to open it?
if ($dh = opendir($dir)) {
//Let's cycle
while (($subdir = readdir($dh)) !== false) {
if ($subdir != "." && $subdir != "..") {
if (is_dir($subdir)) {
echo $subdir;
}
}
}
}
它什么都不打印!
为什么会这样? 我正在运行带有Windows和XAMPP的脚本以进行测试。该目录实际上包含目录。
谢谢
答案 0 :(得分:11)
is_dir($dir . '/' . $subdir)
答案 1 :(得分:4)
readdir()只给出文件/目录名,而不是完整路径(is_dir显然需要)。
在此处找到 - http://www.php.net/manual/en/function.is-dir.php#79622
答案 2 :(得分:1)
因为$dir
是一个完整路径,因为$subdir
只是一个路径片段