当前位置: 首页 > news >正文

PHP 递归遍历目录

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

目录

while循环

foreach循环

调用及结果

总结


while循环

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

具体代码如下:

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函数处理读取路径下所有文件和目录。

具体代码如下:

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>";}}}
}

调用及结果

$path = "C:\phpstudy_pro\www\mini";
getDir($path);

运行结果:

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较
  • 银从初级个人理财_08_第三章第二节
  • ShardingSphere 分库分表
  • 【测试项目】——个人博客系统自动化测试
  • 《微信小程序实战(3) · 推广海报制作》
  • Oracle表空间管理(二)
  • Servlet入门:服务端小程序的初试(自己学习整理的资料)
  • Spring Boot实战:使用策略模式优化商品推荐系统
  • Linux的基础知识
  • Python | Leetcode Python题解之第433题最小基因变化
  • nlohmann json:读写json文件
  • seL4 Threads(四)
  • 华为HarmonyOS灵活高效的消息推送服务(Push Kit) -- 10 推送实况窗消息
  • esp32 wifi 联网后,用http 发送hello 用pc 浏览器查看网页
  • 微软宣布弃用WSUS,企业用户尽早准备替换方案
  • 《剑指offer》分解让复杂问题更简单
  • Angular6错误 Service: No provider for Renderer2
  • centos安装java运行环境jdk+tomcat
  • CSS居中完全指南——构建CSS居中决策树
  • css系列之关于字体的事
  • Invalidate和postInvalidate的区别
  • Leetcode 27 Remove Element
  • Spring-boot 启动时碰到的错误
  • vue-router 实现分析
  • Windows Containers 大冒险: 容器网络
  • 创建一个Struts2项目maven 方式
  • 对象引论
  • 后端_MYSQL
  • 简单实现一个textarea自适应高度
  • 前端面试题总结
  • 实现菜单下拉伸展折叠效果demo
  • 王永庆:技术创新改变教育未来
  • 为什么要用IPython/Jupyter?
  • 小试R空间处理新库sf
  • 应用生命周期终极 DevOps 工具包
  • 与 ConTeXt MkIV 官方文档的接驳
  • 中文输入法与React文本输入框的问题与解决方案
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ‌移动管家手机智能控制汽车系统
  • #php的pecl工具#
  • #QT(串口助手-界面)
  • (20)docke容器
  • (Qt) 默认QtWidget应用包含什么?
  • (三)uboot源码分析
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (五)activiti-modeler 编辑器初步优化
  • (转)Sublime Text3配置Lua运行环境
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • *Django中的Ajax 纯js的书写样式1
  • .NET delegate 委托 、 Event 事件
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 解决重复提交问题
  • .NET 使用配置文件