用PHP实现递归循环每一个目录

函数的原理很简单,主要就是用了一下递归调用。


代码如下:

function file_list($path){
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if (is_dir($path."/".$file)) {
echo $path.": ".$file."<br>";//去掉此行显示的是所有的非目录文件
file_list($path."/".$file);
} else {
echo $path.": ".$file."<br>";
}
}
}
}
}

这个函数还可以继续做一些改进,加入一些文件夹或文件的图标什么的,这样就可以做成更强大的一个函数了,有兴趣的朋友可以扩展的一下。

(0)

相关推荐

  • PHP递归创建多级目录

    我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkdir($dir,0777)){ //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创建失败,会报一个"父目录不存在"的警告. echo $dir."创建成功<br>"; //输出创建成功的目录 }else{ $dirArr=explode('/',$dir); //当子目录没创建成功时,试图创建父目

  • PHP实现递归目录的5种方法

    项目开发中免不了要在服务器上创建文件夹,比如上传图片时的目录,模板解析时的目录等.这不当前手下的项目就用到了这个,于是总结了几个循环创建目录的方法. 方法一:使用glob循环 <?php //方法一:使用glob循环 function myscandir1($path, &$arr) { foreach (glob($path) as $file) { if (is_dir($file)) { myscandir1($file . '/*', $arr); } else { $arr[] =

  • php递归法读取目录及文件的方法

    本文实例讲述了php递归法读取目录及文件的方法.分享给大家供大家参考.具体如下: 这里实例分析php递归法读取目录及文件的方法,代码中包含较为详尽的注释,如下所示: <?php function showdir($path){ $dh = opendir($path);//打开目录 while(($d = readdir($dh)) != false){ //逐个文件读取,添加!=false条件,是为避免有文件或目录的名称为0 if($d=='.' || $d == '..'){//判断是否为.

  • php上传文件,创建递归目录的实例代码

    复制代码 代码如下: <?php $uid=$_REQUEST['uid']; $avatar = 'D:/avic/discuz/uc_server/data/avatar/'.get_avatar($uid, $size, $type);$dir=dirname($avatar); //创建目录成功后移动临时文件if(mkdirs($dir)){ if($_FILES["pic"]["error"] >= 0){ if(move_uploaded_f

  • php递归列出所有文件和目录的代码

    <?php /*我的程序在国外的SREVER上,自己编的程序存放到哪,我很难记清. 所以编了一个简单的目录递归函数,查看我的程序,很方便的. */ function tree($directory) { $mydir=dir($directory); echo "<ul>"; while($file=$mydir->read()){ if((is_dir("$directory/$file")) AND ($file!=".&quo

  • 用PHP实现递归循环每一个目录

    函数的原理很简单,主要就是用了一下递归调用. 复制代码 代码如下: function file_list($path){ if ($handle = opendir($path)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if (is_dir($path."/".$file)) { echo $pat

  • C++递归删除一个目录实例

    本文实例讲述了C++递归删除一个目录的实现方法.分享给大家供大家参考.具体方法如下: CFindFile的使用框架如下: 复制代码 代码如下: void Recurse(LPCTSTR pstr)  {     CFileFind finder;       // build a string with wildcards     CString strWildcard(pstr);     strWildcard += _T("\\*.*");       // start work

  • Python利用递归和walk()遍历目录文件的方法示例

    前言 经常需要检查一个"目录或文件夹"内部有没有我们想要的文件或者文件夹,就需要我们循环迭代出所有文件和子文件夹,Python中遍历指定目录下所有的文件和文件夹,包含多级目录,有两种方法,一种是通过递归思想去遍历,另一种是os模块的walk()函数下面话不多说,就来一起看看详细的介绍: 列出目录结构 一.递归方法 #coding:utf-8 import os allfile=[] def getallfile(path): allfilelist=os.listdir(path) f

  • PHP递归复制、移动目录的自定义函数分享

    虽然复制一个目录是文件操作的基本功能.但PHP中也没有给出特定的函数,同样需要自定义一个递归函数实现.要复制一个包含多个子目录的目录,将涉及文件的复制.目录创建等操作.复制一个文件可以通过PHP提供的copy()函数完成,创建目录可以使用mkdir()函数.定义函数时,首先对源目录进行遍历,如果遇到的是普通文件,直接使用copy()函数进行复制.如果遍历时遇到一个目录,则必须建立该目录,然后再对该目录下的文件进行复制操作,如果还有子目录,则使用递归重复操作,最终将整个目录复制完成.自定义的递归函

  • react+antd 递归实现树状目录操作

    1.写在前面 作为前端小白的我一直对算法和数据结构浅尝辄止,哝,吃亏了.使用多次递归实现数据格式化后将数据进行树状展示的目的,分享一下我这次挠头的经历~ 2.数据 后台传过来的数据大概是这样的 { "data":[ { "id":1, "name":"一级节点", "parentId":0, "isValid":true, "canAddChild":true, &q

  • thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法

    本文实例讲述了thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法.分享给大家供大家参考,具体如下: 这里使用thinkphp递归循环栏目按照树形结构无限极输出,并保存为一个数组,利于模板调用 具体代码如下: private function categoryTree($parentid,$level) //因为是本类中使用所以定于为私有函数 { $Category= D('Category'); $result = $Category->where("`parentid`=&q

  • Java如何使用while循环计算一个整数的位数

    目录 如何使用while循环计算一个整数的位数 实现代码如下 java循环习题,求整数位数 方法一 方法二 如何使用while循环计算一个整数的位数 做个 java 小练习,使用while循环来实现如下功能: 计算出任意一个小于10位的整数的个数. 如输入100,则输出:它是个3位数! 实现代码如下 public static void count(int n) { /** * 计算一个整数(小于10位)的位数 * 如:输入999,则输出 "它是个3位数" * * @param n:小

  • linux find下如何统计一个目录下的文件个数以及代码总行数的命令

    今天遇到如题所示问题,网上捣鼓半天,有收获 知道指定后缀名的文件总个数命令:        find . -name "*.html" | wc -l 知道一个目录下代码总行数以及单个文件行数:        find . -name "*.html" | xargs wc -l

  • Python读取一个目录下所有目录和文件的方法

    本文实例讲述了Python读取一个目录下所有目录和文件的方法.分享给大家供大家参考,具体如下: 这里介绍的是刚学python时的一个读取目录的列子,给大家分享下: #!/usr/bin/python # -*- coding:utf8 -*- import os allFileNum = 0 def printPath(level, path): global allFileNum ''' 打印一个目录下的所有文件夹和文件 ''' # 所有文件夹,第一个字段是次目录的级别 dirList = [

  • asp.net TreeView递归循环子节点生成树形菜单实例

    本文实例讲述了asp.net TreeView递归循环子节点生成树形菜单的方法.分享给大家供大家参考,具体如下: 这里主要用到递归循环获取子结点 /// <summary> /// 生成根节点 /// </summary> /// <param name="treeview"></param> protected void BindTreeView(long ID, TreeView treeview) { DataTable dt =

随机推荐