-3
<?php

function directory_listing($directory_name)
{
    if ($handle = opendir($directory_name)) 
    {
        while (false !== ($entry = readdir($handle))) 
        {
            if ($entry != "." && $entry != "..") 
            {
                if(is_dir($entry))
                {   

                    **//program is avoiding this block
                    echo $entry.'--<br/>';** 

                }
                else
                {
                    echo $entry.'<br/>';
                }   
            }
        }
        closedir($handle);
    }
}


directory_listing('go');

?>

我想要一个包含上述代码的目录列表。但是该程序正在避免提到的if 块

谢谢

福萨尔

4

4 回答 4

5

要列出目录,您可以使用DirectoryIterator

$iterator = new DirectoryIterator('pathtoyourdir/');
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isDir()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
于 2013-05-21T10:29:36.767 回答
1

而是写完整的相对路径:

if(is_dir("$directory_name/$entry"))

因为$entry不在当前工作目录中,而是在您正在阅读的目录中。

于 2013-05-21T10:29:50.857 回答
1

$entry不是文件/目录的完整路径。改为使用$directory_name.'/'.$entry

于 2013-05-21T10:30:08.623 回答
0

或者你可以看看http://php.net/glob

foreach (glob('dir/*') as $file) {
    if (is_dir($file)) {
        echo $entry . '--<br />';
    }
    else {
        echo $entry . '<br />';
    }
}
于 2013-05-21T10:31:06.877 回答