热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php遍历一个文件夹下的所有目录及文件

在面试中我们经常遇到这个题目:php遍历一个文件夹下的所有文件和子文件夹。这个题目有好多种解决方法。但大致思路都一样。采用递归。$path='./filepath';functiongetfiles($path){if(!is_dir($path))return;$handle=

  在面试中我们经常遇到这个题目:php遍历一个文件夹下的所有文件和子文件夹。

  这个题目有好多种解决方法。但大致思路都一样。采用递归。

  1.  $path = './filepath';  
  2.  function getfiles($path)  
  3.  {  
  4.      if(!is_dir($path)) return;  
  5.     $handle  = opendir($path);  
  6.     while( false !== ($file = readdir($handle)))  
  7.     {  
  8.         if($file != '.'  &&  $file!='..')  
  9.         {  
  10.             $path2$path.'/'.$file;  
  11.             if(is_dir($path2))  
  12.             {  
  13.                 echo '  
  14. ';  
  15.                 echo $file;  
  16.                getfiles($path2);  
  17.             }else 
  18.             {  
  19.                echo '  
  20. ';  
  21.                 echo $file;  
  22.             }  
  23.         }  
  24.     }  
  25. }  
  26.  
  27.   print_r( getfiles($path));  
  28.  
  29. echo '  

  30. ';  
  31.  
  32. function getdir($path)  
  33. {  
  34.     if(!is_dir($path)) return;  
  35.     $handle = dir($path);  
  36.     while($file=$handle->read())  
  37.     {  
  38.         if($file!='.' && $file!='..')  
  39.         {  
  40.             $path2 = $path.'/'.$file;  
  41.             if(is_dir($path2))  
  42.             {  
  43.                     echo $file."\t";  
  44.                      getdir($path2);  
  45.             }else 
  46.             {  
  47.                 echo $file.'  
  48. ';  
  49.             }  
  50.         }  
  51.     }  
  52. }  
  53.  getdir($path);  
  54.  
  55.  echo '  

  56. ';  
  57.  
  58.  function get_dir_scandir($path){  
  59.  
  60.     $tree = array();  
  61.     foreach(scandir($pathas $single){  
  62.         if($single!='.' && $single!='..')  
  63.         {  
  64.             $path2 = $path.'/'.$single;  
  65.             if(is_dir($path2))  
  66.             {  
  67.                 echo  $single."  
  68. \r\n";  
  69.                  get_dir_scandir($path2);  
  70.             }else 
  71.             {  
  72.                 echo $single."  
  73. \r\n";  
  74.             }  
  75.         }  
  76.     }  
  77. }  
  78. get_dir_scandir($path);  
  79.  
  80.   echo '  

  81. ';  
  82.  
  83. function get_dir_glob(){  
  84.     $tree = array();  
  85.     foreach(glob('./curl/*'as $single){  
  86.         echo $single."  
  87. \r\n";  
  88.     }  
  89. }  
  90. get_dir_glob();  
  91.  
  92.    echo '  

  93. ';  
  94. function myscandir($path)  
  95. {  
  96.     if(!is_dir($path))  return;  
  97.     foreach(scandir($pathas $file)  
  98.     {  
  99.         if($file!='.'  && $file!='..')  
  100.         {  
  101.             $path2$path.'/'.$file;  
  102.             if(is_dir($path2))  
  103.             {  
  104.                 echo $file;  
  105.                 myscandir($path2);  
  106.             }else 
  107.             {  
  108.                 echo $file.'  
  109. ';  
  110.             }  
  111.         }  
  112.     }  
  113. }  
  114.  
  115. myscandir($path);  
  116.  
  117.    echo '  

  118. ';  
  119.  
  120. function myglob($path)  
  121. {  
  122.     $path_pattern = $path.'/*';  
  123.     foreach(glob($path_patternas $file)  
  124.     {  
  125.             if(is_dir($file))  
  126.             {  
  127.                 echo $file;  
  128.                 myscandir($file);  
  129.             }else 
  130.             {  
  131.                 echo $file.'  
  132. ';  
  133.             }  
  134.     }  
  135. }  
  136.  
  137. myglob($path); 

 


推荐阅读
  • 本文详细介绍了暂估入库的会计分录处理方法,包括账务处理的具体步骤和注意事项。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 郑州大学在211高校中的地位与排名解析
    本文将详细解读郑州大学作为一所位于河南省的211和双一流B类高校,在全国211高校中的地位与排名,帮助高三学生更好地了解这所知名学府的实力与发展前景。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 电子元件封装库:三极管、MOS管及部分LDO(含3D模型)
    本资源汇集了常用的插件和贴片三极管、MOS管以及部分LDO的封装,涵盖TO和SOT系列。所有封装均配有高质量的3D模型,共计96种,满足日常设计需求。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 小红书提高MCN机构入驻门槛,需缴纳20万元保证金
    近期,小红书对MCN机构的入驻要求进行了调整,明确要求MCN机构在入驻时需缴纳20万元人民币的保证金。此举旨在进一步规范平台内容生态,确保社区的真实性和用户体验。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 动物餐厅高效获取小鱼干攻略
    本文将介绍2023年动物餐厅中快速赚取小鱼干的有效方法,帮助玩家更轻松地积累资源。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
author-avatar
小胖胖的夢2502895687
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有