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 两种循环递归遍历目录的示例。

相关推荐
恋恋西风1 小时前
C++ 理解 std::thread 在单核和多核上的行为差异
开发语言·c++
学长毕业设计1 小时前
基于SpringBoot的公益基金管理系统(源码+文档+讲解视频)
java·spring boot·后端
Brilliantwxx1 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
东小西1 小时前
【SAA实战】第 3 篇 · 工具调用全攻略:把业务能力交给 Agent 自己调度
java·后端·spring
东小西1 小时前
【SAA实战】第 4 篇 · Agent 短期记忆:saver 让 Agent 跨轮记得住(threadId 隔离)
java·后端·spring
BizzZ_2 小时前
C++(22)——类型转换和IO流
开发语言·c++
阿kun要赚马内2 小时前
MySQL 索引基础
后端·mysql
小范同学_2 小时前
JDK1.7 与 JDK1.8 HashMap 底层原理对比 + 数组并发扩容死循环详解
java·开发语言
码事漫谈2 小时前
我啥都能做,却不知道做什么了
后端
geovindu2 小时前
CSharp: 万年历
开发语言·后端·c#·.net