//递归遍历文件

//递归:实现流程分析

/*

*1、先找到父问题,定义函数,解决父问题(遍历给定路径文件里面的所有文件)

*2、找出递归点,子问题调用自己的函数解决问题,(遍历文件下的所有文件)

*3、找到递归出口:什么时候函数不需要再执行了,直接 return

*/

//定义路径

$dir='../';

//定义函数:遍历路径文件里面的所有文件

function myScandir($dir,$level=0){//$level控制文件分层缩进,每调用一次自加1,但自身不改变

//判断是否是有效路径

if(!is_dir($dir)) return false;

//获取文件:所有文件,为一维数组

$files = scandir($dir);

//遍历文件

foreach($files as $file){

//组合路径

$tmpdir = $dir.'/'.$file;

//根据$level缩进文件 利用层级关系,排队

echo str_repeat(" ",$level*4);

//判断:路径蓝色,文件红色

if(is_dir($tmpdir)){

//路径:蓝色

echo "{$file}
";

//排除无效文件名'.'和'..'

if($file!='.' && $file!='..'){

//递归点:子问题调用

myScandir($tmpdir,$level+1);

}

}else{

//文件:红色

echo "{$file}
";

}

}//递归出口点:foreach遍历完也没有文件时

}

//函数调用

myScandir($dir);

php 递归太多报错,PHP、递归 - 角落里的星辰的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. java中的v递归的思想,Java中的递归思想 - osc_9lqilnv7的个人空间 - OSCHINA - 中文开源技术交流社区...

    递归: 递归的概念:方法自身调用自身则称为递归. 递归的分类: 间接递归:方法A调用方法B,方法B调用方法C,方法C调用方法A. 直接递归: 方法A调用方法A.(常用) 递归的注意事项: 递归一定要出 ...

  2. c语言中用递推法解决渔夫问题,递归、递推 - IT小冰的个人空间 - OSCHINA - 中文开源技术交流社区...

    递归 定义 :定义一个函数时出现调用本函数的成分,称之为递归 直接递归,自己调自己 间接递归,函数p调函数q,q又调用p 尾递归,递归函数中,递归调用语句是最后一句 递归应满足的条件 : 需要解决的问 ...

  3. java 递归死循环_Java递归 - 感觉太煽情的个人空间 - OSCHINA - 中文开源技术交流社区...

    树节点类: package cn.com.tree; public class Node { private Integer id; private Integer parentId; private ...

  4. mysql5.7刷脏报错_mysql5.7安装 - osc_136ia3e6的个人空间 - OSCHINA - 中文开源技术交流社区...

    12配置文件 [client] port=3306socket=/data/mysql/run/mysql.sock [mysqld] pid-file = /data/mysql/run/mysql ...

  5. emc存储java打开后报错_连接EMC存储系统 - osc_mk8rqvg4的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.准备一台笔记本电脑,一根网线即可. 2.将网线一头连接笔记本电脑,另一头连接存储.(连接存储的一头应连接到有扳手图标的那一网口上) 3.配置IP地址 IP:128.221.1.254 子网掩码:2 ...

  6. Oracle闪回报错,Oracle闪回恢复 - osc_pnw2apz4的个人空间 - OSCHINA - 中文开源技术交流社区...

    Oracle的闪回功能包括 1.闪回数据库(前提 归档模式下 启用闪回数据库) mount 下 alter database archivelog; alter database flashback ...

  7. java sql报错不能catch_java异常(转) - osc_ioa3fr1w的个人空间 - OSCHINA - 中文开源技术交流社区...

    Throwable(所有error和exception的父类:超类) Java将错误变成对象交给异常处理机制 Error(仅靠程序本身无法恢复的严重错误) 一般是环境的问题,JVM的问题,并非程序的问 ...

  8. gogs mysql 报错_Gogs服务搭建 - osc_2ltf3y0p的个人空间 - OSCHINA - 中文开源技术交流社区...

    Gogs 安装教程(最简单版) 简介 Gogs 的目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支 ...

  9. mysql 视图报错1356,mysql视图初探 - osc_ky6f5kf1的个人空间 - OSCHINA - 中文开源技术交流社区...

    mysql视图初探 官方例子如下,从官方的例子就可以看出来视图就是提供一种快捷查询.用视图来查询一些常用的结果. mysql> help create view; Name: 'CREATE V ...

最新文章

  1. python深拷贝一个对象_Python对象的深拷贝和浅拷贝详解
  2. 用Python做垃圾分类
  3. 07_Android操作sqllite数据库(包括2中方式操作数据的方式),单元测试,BaseAdapter的使用,自定义view的综合使用案例
  4. C++:42---类的内存大小
  5. 反应器(Reactor):用于事件多路分离和分派的体系结构模式
  6. oracle wms连不上,几个WMS的问题处理
  7. 符合推理的解决方法 NSlover
  8. TiKV 源码解析系列 ——Placement Driver
  9. leapftp 3.0.1使用教程,leapftp 3.0.1使用教程图解
  10. Docker安装、配置国内镜像加速器
  11. 大气污染治理行业有哪些特点?
  12. Excel-汉字中提取数字
  13. 石油大学个人训练赛(一)补题----问题 A: 斗地主
  14. shell 脚本程序中空格 $符号的使用
  15. 计算机毕业设计JAVA项目实训管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw
  16. 解决VUE项目更新后需要客户手动刷新浏览器问题
  17. 做自适应网站专业乐云seo_网站建设技术很 棒乐云seo:SEO技术这碗青春饭,跪
  18. 案例分享:Qt工程机械真空激光焊接系统软件产品定制(西门子PLC,mysql数据库,用户权限控制,界面配置,参数定制,播放器,二维图标,rgv小车,期限控制,参数调试等)
  19. 验证码生成原理即Python代码实现
  20. GitHub 上超屌的 9 个 Vue 开源项目

热门文章

  1. java集合类讲解视频,关于java:实实在在面试List和Map集合面试合集含讲解视频
  2. 75分钟入门微生物组数据分析和结果解读—刘永鑫(合肥,2021年6月23日)
  3. Nature:植物叶际微生物组稳态维持机制
  4. GPB:菊粉改善糖脂代谢紊乱作用的机制(作者解读)
  5. 原始数据极速上传NCBI SRA教程
  6. python使用matplotlib可视化3D线框图、线框图可以将数据投影到指定的三维表面上,并输出可视化程度较高的三维效果图
  7. python使用numpy包编写自定义函数计算MAPE(平均绝对百分比误差)指标mean absolute percentage error (MAPE)、MAPE指标解读、MAPE指标使用的注意事项
  8. R语言使用tryCatch函数调试R代码实战:tryCatch函数运行正常R代码、tryCatch函数运行有错误(error)的R代码示例/tryCatch函数运行有警告(warning)的R代码示例
  9. Python判断两个文件夹中互相不同的文件有哪些、判断一个文件夹相对于另外一个文件夹缺少了哪些文件
  10. R语言max函数min函数计算各种数据对象最大值最小值实战