我有以下脚本,用于获取给定类型的任何和所有文件,并返回所有值的数组。但是,当我运行脚本时,它不会添加模块文件夹中目录中的任何值,除非我只是添加后续数组。
<?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);
?>
答案 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);