0

ディレクトリを再帰的にリストしたいコードを書いています。これまで、レベル1のディレクトリを一覧表示するコードを作成しました。誰かが私が無限に再帰する方法について何かアイデアがありますか?

$res = OC_Files::getDirectoryContent('');
$list = array();
foreach($res as $file) {
    if ($file['type'] == 'dir') {
        $res1 = OC_Files::getDirectoryContent('/'.$file['name']);
        foreach($res1 as $res2) {
            if ($res2['type'] == 'file') $list[] = $file['name'].'/'.$res2['name'];
        }

    } else $list[] = $file['name'];
}

foreach($list as $entry)
echo $entry.'</br>';
4

1 に答える 1

0

これを試して:

function traverse_directory($dir) {
    $res = OC_Files::getDirectoryContent($dir);
    $list = array();
    foreach($res as $file) {
        if ($file['type'] == 'dir') {
            traverse_directory($dir . '/' . $file['name'])
        } else {
            $list[] = $file['name'];
        }
    }
    foreach($list as $entry) {
        echo $entry.'</br>';
    }
}

traverse_directory('');
于 2012-08-09T18:07:53.193 に答える