php递归获取目录内文件(包含子目录)的代码

发布时间:2020-02-17编辑:脚本学堂
分享一例php使用递归获取目录内的文件,包含子目录中文件的代码,学习下php 递归目录的操作方法,有需要的朋友参考下。

php递归获取目录内文件,可以递归子目录。
代码:
 

复制代码 代码示例:

<?php
/**
* 递归获取目录与子目录中的文件
* by www.jb200.com
*/

function readFileFromDir($dir) {
    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 />';
        } elseif (is_dir($file)) {
            readFileFromDir($file);
        }
    }
}

调用方式:
 

复制代码 代码示例:
$dir = '/var/www/test';
readFileFromDir($dir);
 

查看php手册,发现一个方法scandir也可以使用,此方法会一次性获取单级目录下的所有文件,存放到数组中。
当目录中文件较多时,此方法不太适用。