模块阅读器未加载所有模块

时间:2015-10-16 19:43:49

标签: php arrays

我有以下脚本,用于获取给定类型的任何和所有文件,并返回所有值的数组。但是,当我运行脚本时,它不会添加模块文件夹中目录中的任何值,除非我只是添加后续数组。

<?php

function get_modules($dir,$ftype) {
    $file = scandir($dir);

    $result = array();

    foreach($file as $key => $value) {
        if($value == "." || $value == "..") {
            // Do Nothing
        } else {
            if(is_dir($dir . "/" . $value)) {
                array_merge($result, get_modules($dir . "/" . $value, $ftype));
            } else {
                if(pathinfo($value,PATHINFO_EXTENSION) == $ftype) {
                    array_push($result, $dir . "/" . $value);
                } else {
                    // Do Nothing
                }
            }
        }
    }

    return $result;
}

$modules = get_modules("modules","txt");

print_r($modules);

?>

1 个答案:

答案 0 :(得分:2)

为什么不使用glob() with some modifications?见

if ( ! function_exists('glob_recursive')) {
    // Does not support flag GLOB_BRACE
    function glob_recursive($pattern, $flags = 0) {
        $files = glob($pattern, $flags);
        foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir)
            $files = array_merge($files, glob_recursive($dir.'/'.basename($pattern), $flags));
        return $files;
    }
}

function get_modules($ftype) {
    $result = glob_recursive($ftype);
    return $result;
}

$modules = get_modules("*.txt");
print_r($modules);