0

ディレクトリとサブディレクトリに存在するすべてのファイルを配列に配置するこの単純な関数を書き留めましたが、機能しません。エコーして$fも何も表示されません。どこが間違っていますか?

define('ROOT_DIR', __DIR__);

function scanSubDir($w_dir){
    $dir = scandir($w_dir);

    foreach($dir as $f){
        if($f != '..' || $f != '.'){
            if(is_file($w_dir.$f)){
                $list[] = $f;
            }elseif(is_dir($w_dir.$f)){
                scanSubDir($w_dir.$f);
            }
        }
    }
    return $list;
}

$file = scanSubDir(ROOT_DIR.'/test/');

foreach($file as $f){
    echo $f;
}
4

2 に答える 2

0

これを試して:

<?php
function _scandir($dir = '.', $files = array())
{
    foreach(glob($dir . '/*') as $file) {
        if(is_file($file)) {
            $files[] = $file;
        }else{
            $files = array_merge($files, _scandir($file));
        }
    }
    return $files;
}
?>

<pre>
<?php print_r(_scandir()); ?>
</pre>
于 2013-06-24T14:58:18.997 に答える