1

これは、自分のサーバー内のフォルダーのディレクトリ構造を見つけるための CodeIgniter コードですが、1 レベルの深さしかありません。指定された .xml 内のすべてのサブディレクトリを一覧表示したい$path。このコードのエラーは何ですか?

function finddir($path)
{
    $this->load->helper('directory');
    $dir=directory_map($path,1);
    //echo"$path";
    foreach ($dir as $key => $subdir) 
    {
        //echo $subdir."<br/>";
        if(is_dir($subdir))
        {
            echo "<h3>$subdir</h3>";
            $this->finddir($subdir);
        }
        else
        {
            echo "$subdir<br>";
        }

    }
}

出力の深さは 1 レベルのみです。私は再帰を使用しているので、より深いレベルに行きたいと思っています。

4

4 に答える 4

0

番号1を削除する代わりに、その番号は最初のレベルのディレクトリのみを返すため、$dir=directory_map($path,1)このように表示されます。$dir=directory_map($path)

于 2016-01-16T20:30:00.017 に答える
0

なんでこんなことするの?

directory_map('source directory')は、サブ配列 (パスに基づいて該当する場合はサブサブ配列) を含む配列を返します。

完全なツリーを取得します。配列をループして、必要に応じて印刷/使用します。is_array($subdir)を使用して、そのディレクトリまたはファイル リーフをテストします。

于 2013-06-24T09:54:01.423 に答える
0

これにはRecursiveDirectoryIteratorを試してください

function finddir($path)
{
    $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
    foreach($objects as $name => $object){
        echo "$name\n";
    }
}
于 2013-06-24T09:54:42.947 に答える