`

[转]php递归获取目录内的文件,包含子目录

    博客分类:
  • PHP
阅读更多

封装成了一个方法,代码如下:

 

 

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 = '/home/www/test';
readFileFromDir($dir);

 

查看php手册的话,还有一个方法scandir也可以使用,不过这个方法会一次性获取单级目录下的所有文件,存放到数组里,如果目录里的文件比较多的话,会卡。

 

 

原文网址:http://www.01happy.com/php-get-dir-file/

分享到:
评论

相关推荐

    php递归获取目录内文件(包含子目录)封装类分享

    下面是一段用于递归获取目录内文件(包括子目录)的 PHP 函数示例代码: ```php function readFileFromDir($dir) { if (!is_dir($dir)) { return false; } // 打开目录 $handle = opendir($dir); while (($...

    PHP递归获取目录内所有文件的实现方法

    在PHP编程中,有时我们需要获取一个目录及其子目录下的所有文件。这通常通过递归算法来实现,因为非递归的方式可能会导致代码过于复杂...了解并熟练掌握递归获取目录内所有文件的方法,对于提升PHP开发能力非常有帮助。

    php如何实现递归遍历文件目录

    在PHP中,递归遍历文件目录是一种常用的技术,它允许开发者访问并处理指定目录及其所有子目录中的文件。这在处理大量文件或构建文件管理系统时尤其有用。下面将详细介绍如何使用PHP实现这一功能。 首先,我们需要...

    php获取目录下所有文件及目录(多种方法)(推荐)

    在PHP中,获取目录下的所有文件及子目录是一个非常基础而常用的操作,尤其在文件管理系统或者需要遍历文件夹内容的Web应用中。这篇文章会详细介绍几种不同的方法来实现这一需求,并通过示例代码进行演示,帮助大家更...

    PHP递归寻找指定文件夹的所有文件,并且按照扩展分好目录

    首先,我们需要了解PHP中的`scandir()`函数,它用于读取指定目录的内容,返回一个包含目录中文件和子目录的数组。接着是`is_dir()`和`is_file()`,这两个函数分别用于判断给定路径是否为目录或文件。再者,`basename...

    PHP递归生成TREE

    `SQL.txt` 文件很可能包含了用于获取数据的SQL查询语句,这些数据将被用于构建树结构。例如,查询可能从一个名为`categories`的表中获取所有类别,其中`parent_id`字段标识了每个类别的父类别。这样的查询结果可以...

    获取文件目录.rar

    在Java中,`java.io.File`类的`list()`和`listFiles()`方法可以获取目录中的文件和子目录。对于Node.js,我们可以使用`fs.readdirSync()`或异步的`fs.readdir()`读取目录内容。 对于更复杂的场景,如在Web开发中...

    php代码-php 递归遍历目录下所有的文件并计算文件md5值

    它首先使用`scandir`函数获取目录中的所有文件和子目录,然后遍历这些条目。如果遇到的是一个目录(通过`is_dir`函数检查),则递归调用自身;如果是一个文件,就使用`md5_file`函数计算文件的MD5值,并打印出来。 ...

    PHP递归创建多级目录

    PHP递归创建多级目录是PHP开发中的一项基本技能,尤其在处理文件系统时非常有用。递归是一种常见的编程技术,它允许函数调用自身来解决分治问题。在创建多级目录的场景中,我们可能会遇到父目录尚未创建的情况,这就...

    php遍历目录和文件列表的类

    通过继承或扩展这个类,还可以添加更多功能,如递归遍历子目录、检查文件权限、过滤特定类型的文件等。 总的来说,了解如何在PHP中遍历目录和文件列表是进行文件系统操作的基础。通过使用类来封装这些操作,我们...

    php查找当前目录下所有带有bom的文件

    在这个特定的场景中,`scandir()`函数可能被用来获取目录中的所有文件和子目录,然后递归地处理每个子目录。 4. **文件内容检查**:为了检测文件是否包含BOM,我们需要读取文件的前几个字节,因为BOM通常位于文件的...

    24.递归1

    在本例中,递归点是当我们发现一个文件是目录时,这时我们会调用函数自身来处理这个子目录。递归出口则是当目录下没有更多的子目录时,函数会返回到调用它的上级函数,即上一级的递归调用。 为了以树状结构展示目录...

    Linux系统递归生成目录中文件的md5的方法

    脚本中的`get_file_md5()`函数是一个递归函数,它首先获取指定路径下的所有文件和子目录,然后对每个非`.`和`..`的文件或目录进行处理。如果遇到子目录,它会再次调用自身进行递归;如果是文件,它会使用PHP的内置`...

    使用PHP遍历文件夹与子目录的函数代码

    在需要遍历整个文件树(包括所有子目录)的情况下,需要使用递归。`scandir()` 在递归遍历时会出现问题,因为它可能会两次扫描到上级目录(如 `../`),而`glob()` 则不会。以下是使用`scandir()` 和 `glob()` 实现...

    php文件目录操作类.zip

    2. 测试复制文件夹:复制整个目录结构通常需要递归处理,使用`scandir()`获取目录中的所有文件和子目录,然后分别调用`copy()`来复制文件和再次递归复制子目录。这个类可能包含一个方法,处理了这个复杂的过程。 3. ...

    PHP不用递归遍历目录下所有文件的代码

    在循环中,每次都会弹出栈顶的目录,使用`scandir`函数获取该目录中的所有文件和子目录,然后遍历这些条目。对于每个条目,如果它是`.`或`..`,则忽略,否则将路径拼接得到当前文件或子目录的完整路径。如果是子目录...

Global site tag (gtag.js) - Google Analytics