我想写文件扫描脚本
此脚本必须搜索大量文件夹并从文件中创建列表
我写了这个脚本,但是没有回复
function checkdir($dir) {
$file_array = array();
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $key => $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir") {
// folder loop , try find files again
checkdir($dir."/".$object);
//$file_array[] = 'dir';
} else {
$file_array[] = $dir."/".$object;
//echo $dir."/".$object.'<br>';
}
}
}// end foreach
//reset($objects);
}
return $file_array;
}
正如您在else
条件中看到的那样,我写了$file_array[] = $dir."/".$object;
它的打印值,但无法将值存储到数组中
答案 0 :(得分:1)
递归调用需要将其结果添加到数组中:
await
整个功能:
$file_array = array_merge($file_array, checkdir($dir."/".$object));
答案 1 :(得分:0)
怎么样:
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;
}
}
?>
这是来自php.net的例子,检查&#34; glob&#34;。