PHP 递归遍历目录

本篇文章主要内容为PHP 两种循环递归遍历目录的示例。

目录

while循环

foreach循环

调用及结果

总结


while循环

应用while循环和opendir、readdir函数处理读取路径下所有文件和目录。

具体代码如下:

php 复制代码
function getDir($path, $space = '')
{
    $dir = opendir($path);
    $space .= '--';
    while (($file = readdir($dir)) !== false) {
        if ($file != "." && $file != "..") {
            // 判断遍历的是否是一个目录
            if (is_dir($path . "/" . $file)) {
                echo $space . "目录:{$file}<br>";
                getDir($path . "/" . $file, $space);
            } else {
                echo $space . "文件:{$file}<br>";
            }
        }
    }
}

foreach循环

应用foreach循环和scandir函数处理读取路径下所有文件和目录。

具体代码如下:

php 复制代码
function getDir($path, $space = '')
{
    $space .= '--';
    $files = scandir($path);
    foreach ($files as $file) {
        if ($file != "." && $file != "..") {
            // 判断遍历的是否是一个目录
            if (is_dir($path . "/" . $file)) {
                echo $space . "目录:{$file}<br>";
                getDir($path . "/" . $file, $space);
            } else {
                echo $space . "文件:{$file}<br>";
            }
        }
    }
}

调用及结果

php 复制代码
$path = "C:\phpstudy_pro\www\mini";
getDir($path);

运行结果:

bash 复制代码
--目录:login
----文件:User.php
----文件:checkLogin.php
----文件:credit.php
----文件:login.php
----文件:users.log
--目录:music
----文件:1.mp3
----文件:2.mp3
----文件:3.mp3
----文件:4.mp3
--目录:shoplist
----目录:images
------文件:1.jpg
------文件:10.webp
------文件:2.webp
------文件:3.webp
------文件:4.jpg
------文件:5.webp
------文件:6.webp
------文件:7.webp
------文件:8.webp
------文件:9.webp
----文件:index.php

总结

本篇文章主要内容为PHP 两种循环递归遍历目录的示例。

相关推荐
醇氧6 小时前
【Windows】优雅启动:解析一个 Java 服务的后台启动脚本
java·开发语言·windows
华仔啊6 小时前
这 10 个 MySQL 高级用法,让你的代码又快又好看
后端·mysql
MapGIS技术支持7 小时前
MapGIS Objects Java计算一个三维点到平面的距离
java·开发语言·平面·制图·mapgis
码事漫谈7 小时前
国产时序数据库崛起:金仓凭什么在复杂场景中碾压InfluxDB
后端
上进小菜猪7 小时前
当时序数据不再“只是时间”:金仓数据库如何在复杂场景中拉开与 InfluxDB 的差距
后端
程序员zgh7 小时前
C++ 互斥锁、读写锁、原子操作、条件变量
c语言·开发语言·jvm·c++
小灰灰搞电子7 小时前
Qt 重写QRadioButton实现动态radioButton源码分享
开发语言·qt·命令模式
by__csdn7 小时前
Vue3 setup()函数终极攻略:从入门到精通
开发语言·前端·javascript·vue.js·性能优化·typescript·ecmascript
喵了meme8 小时前
C语言实战5
c语言·开发语言
盖世英雄酱581368 小时前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端