-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 に答える