php递归遍历文件夹

冷炫風刃
发布: 2025-12-20 23:37:02
原创
739人浏览过
使用RecursiveDirectoryIterator和RecursiveIteratorIterator类可高效递归遍历文件夹,代码清晰且健壮,适合大多数场景;手动递归函数适合需要精细控制的场景;结合pathinfo可过滤特定类型文件,如.php文件;推荐优先使用迭代器方式。

php递归遍历文件夹

要使用PHP递归遍历文件夹,最简单高效的方式是利用内置的RecursiveDirectoryIteratorRecursiveIteratorIterator类。这种方式无需手动写递归逻辑,代码更清晰、健壮。

使用迭代器递归遍历目录

这是推荐的方法,适合大多数场景:

$dir = '/path/to/your/folder';
$iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS),
    RecursiveIteratorIterator::SELF_FIRST
);

foreach ($iterator as $fileinfo) {
    $depth = $iterator->getDepth();
    $indent = str_repeat("  ", $depth);
    
    if ($fileinfo->isDir()) {
        echo "$indent[DIR] " . $fileinfo->getFilename() . "\n";
    } else {
        echo "$indent" . $fileinfo->getFilename() . " (size: " . $fileinfo->getSize() . " bytes)\n";
    }
}
登录后复制

手动实现递归函数

如果你希望完全控制流程,也可以手动写递归函数:

外卖吧1.0
外卖吧1.0

一、本站采用PHP+mysql,核心程序使用了kingcms PHP版,重新设计了模板界面,增加了一些操作功能,方便外卖同行可以很好的展示宣传自己的外卖产品。本套源码的模板可以随意共享传播,程序版权仍归Kingcms所有。 二、网站部署操作: 第一步:将“upload”文件夹的所有文件上传到网站的根目录下。 第二步:在数据库管理后台创建好数据库并将源码中的“mysql”文件夹里的文件导入到数据库中

外卖吧1.0 0
查看详情 外卖吧1.0
function scanDirRecursively($path) {
    if (!is_dir($path)) {
        return;
    }

    $items = scandir($path);
    foreach ($items as $item) {
        if ($item === '.' || $item === '..') {
            continue;
        }

        $fullPath = $path . DIRECTORY_SEPARATOR . $item;

        if (is_dir($fullPath)) {
            echo "[DIR] $fullPath\n";
            scanDirRecursively($fullPath); // 递归进入子目录
        } else {
            echo "FILE: $fullPath\n";
        }
    }
}

// 调用示例
scanDirRecursively('/path/to/your/folder');
登录后复制

只获取特定类型文件(如.php

在实际项目中,你可能只想处理某种类型的文件。可以结合pathinfo()过滤:

立即学习PHP免费学习笔记(深入)”;

$phpFiles = [];
foreach ($iterator as $fileinfo) {
    if (!$fileinfo->isFile()) continue;

    $ext = pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION);
    if ($ext === 'php') {
        $phpFiles[] = $fileinfo->getPathname();
    }
}

print_r($phpFiles);
登录后复制
提示: 使用迭代器方式性能更好,且能自动处理深层嵌套;手动递归更适合学习理解原理或需要特殊逻辑控制时使用。 基本上就这些。根据你的具体需求选择合适的方式即可。

以上就是php递归遍历文件夹的详细内容,更多请关注php中文网其它相关文章!

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号