PHP递归获取目录内容readDir,递归删除rmdir

2024-04-10 12:08

本文主要是介绍PHP递归获取目录内容readDir,递归删除rmdir,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

<pre name="code" class="php"><?php
/*** @param $path 需要读取的目录内容*/
function readDirs($path, $deep=0) {//打开,读取$handle = openDir($path);//循环获得文件while(false !== $file = readDir($handle)) {//是不是伪目录 ., ..,是的话不处理if ($file == '.' || $file == '..') continue;echo str_repeat(' ', $deep*4), $file,'<br>';//判断该文件是否为目录if(is_dir($path . '/' . $file)) {//是目录,递归的获取readDirs($path . '/' . $file, $deep+1);}}closeDir($handle);
}
 


将获取的目录保存起来,以便之后使用代码如下

/*** @param $path 需要读取的目录内容** @return array 很多维数组*/
function readDirs($path, $deep=0) {$children = array();//打开,读取$handle = openDir($path);//循环获得文件while(false !== $file = readDir($handle)) {//是不是伪目录 ., ..,是的话不处理if ($file == '.' || $file == '..') continue;//记录当前文件信息的数组$file_info['name']=$file;//文件名//判断该文件是否为目录if(is_dir($path . '/' . $file)) {//是目录,递归的获取$file_info['type'] = 'dir';$file_info['children'] = readDirs($path . '/' . $file, $deep+1);} else {$file_info['type'] = 'file';}$children[] = $file_info;}closeDir($handle);return $children;
}

/*** @param $path 删除需要目录*/
function rmDirs($path) {//打开,读取$handle = openDir($path);//循环获得文件while(false !== $file = readDir($handle)) {//是不是伪目录 ., ..,是的话不处理if ($file == '.' || $file == '..') continue;//判断该文件是否为目录if(is_dir($path . '/' . $file)) {//是目录,递归的获取rmDirs($path . '/' . $file);} else {//文件unlink($path . '/' . $file);//unlink删除文件}}closeDir($handle);return rmdir($path);
}
 

这篇关于PHP递归获取目录内容readDir,递归删除rmdir的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/891019

相关文章

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

mybatisplus的逻辑删除过程

《mybatisplus的逻辑删除过程》:本文主要介绍mybatisplus的逻辑删除过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录myBATisplus的逻辑删除1、在配置文件中添加逻辑删除的字段2、在实体类上加上@TableLogic3、业务层正常删除即

MybatisPlus中removeById删除数据库未变解决方案

《MybatisPlus中removeById删除数据库未变解决方案》MyBatisPlus中,removeById需实体类标注@TableId注解以识别数据库主键,若字段名不一致,应通过value属... 目录MyBATisPlus中removeBypythonId删除数据库未变removeById(Se

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具