您的位置:首页 > 编程语言 > PHP开发

php 递归获取指定目录下,所有子级、孙级文件路径。

2016-11-24 17:13 836 查看
function readFileFromDir($dir,&$a) {

    if (!is_dir($dir)) {

        return false;

    }

    //打开目录

    $handle = opendir($dir);

    while (($file = readdir($handle)) !== false) {

        //排除掉当前目录和上一个目录

        if ($file == "." || $file == "..") {

           continue;

        }

        $file = $dir . DIRECTORY_SEPARATOR . $file;

        //如果是文件就打印出来,否则递归调用

        if (is_file($file)) {

               //print $file . '<br />';
$a[] = $file;
//sleep(1);
//myLog($a,__LINE__);

        } elseif (is_dir($file)) {

            readFileFromDir($file,$a);

        }

    }
}

注释:将每一次执行函数获取到的路径作为$a数组的值传入里面,然后递归再次调用readFileFromDir的时候,$a需要取地址符调用,不然$a不会保留上一次函数执行得到的文件路径。 即&$a传入。

由于php 5.4版本以后,在调用函数的时候,不能传入地址符,否则报错。故调用方法是 readFileFromDir($dir,$a);  $dir,在调用之前可以定义,你要指定的目录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: