php遍历所有文件及文件夹的方法深入解析


Posted in PHP onJune 08, 2013

 1.方法一:

<? 
$dir="D:"; 
static $dir_list =0; 
static $file_list =0; 
function listfile($dir){
global $dir_list,$file_list;
$d = dir($dir); 
while ( $entry = $d->read()) { 
$tem_curnt=$dir."/".$entry; 
if($entry=="." || $entry=="..") continue; 
if ( is_dir( $tem_curnt)) { 
listfile($tem_curnt);
echo "文件夹 ".$tem_curnt."<br>"; 
$dir_list++; 
} 
elseif ( is_file($tem_curnt)) { 
echo "文件".$tem_curnt."<BR>"; 
$file_list++; 
} 
} 
$d->close(); 
}
listfile($dir);
echo "目录数:".$dir_list;
echo"<br>";
echo"文件数:".$file_list;
?>

2.方法二:
<?php
function list_dir($dirpath){
 if($dirpath[strlen($dirpath)]-1!='/'){
  $dirpath.="/";
 }
 static $result_array=array();
 if(is_dir($dirpath)){
  $files_dirs=scandir($dirpath);
  foreach($files_dirs as $file){
   if($file=='.'||$file=='..'){continue;}
   if(is_dir($dirpath.$file)){
    list_dir($dirpath.$file);
   }else{
    array_push($result_array,$dirpath.$file);
   }
  }
 }
 return $result_array;
}
$array=list_dir('D:/www');
foreach($array as $value){
 echo $value;
 echo "<br>";
}
?>

3.方法三:
<?php
 function list_dir($dirpath){
  if($dirpath[strlen($dirpath)-1]!="//"){$dirpath.="//";}
  static $result_array=array();
  if(is_dir($dirpath)){
   $handle=opendir($dirpath);
   while($file=readdir($handle)){
    if($file=="."||$file==".."){continue;}
    if(is_dir($dirpath.$file)){
     list_dir($dirpath.$file."//");
    }else{
     array_push($result_array,$dirpath.$file);
    }
   }
   closedir($handle);
  }
  return $result_array;
 }
 $array=list_dir("D:/www");
 foreach($array as $value){
  echo $value;
  echo "<br>";
 }
?>

4.方法四:
<?php
 function list_dir($dirpath){
  if($dirpath[strlen($dirpath)-1]!="//"){$dirpath.="//";}
  static $result_array=array();
  if(is_dir($dirpath)){
   $dir=dir($dirpath);
   while($file=$dir->read()){
    if($file=="."||$file==".."){continue;}
    if(is_dir($dirpath.$file)){
     list_dir($dirpath.$file."//");
    }else{
     array_push($result_array,$dirpath.$file);
    }
   }
   $dir->close();
  }
  return $result_array;
 }
 $array=list_dir("D:/www");
 foreach($array as $value){
  echo $value;
  echo "<br>";
 }
?>

PHP 相关文章推荐
PHP文件读写操作之文件写入代码
Jan 13 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
Apr 19 PHP
PHP仿盗链代码
Jun 03 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
PHP写的资源下载防盗链类分享
May 12 PHP
PHP未登录自动跳转到登录页面
Dec 21 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 PHP
Laravel如何实现自动加载类
Oct 14 PHP
PHP序列化和反序列化深度剖析实例讲解
Dec 29 PHP
探讨php中遍历二维数组的几种方法详解
Jun 08 #PHP
基于PHP遍历数组的方法汇总分析
Jun 08 #PHP
深入for,while,foreach遍历时间比较的详解
Jun 08 #PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
Jun 08 #PHP
处理单名多值表单的详解
Jun 08 #PHP
探讨fckeditor在Php中的配置详解
Jun 08 #PHP
php创建基本身份认证站点的方法详解
Jun 08 #PHP
You might like
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
React组件生命周期详解
2017/07/03 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
轻松实现python搭建微信公众平台
2016/02/16 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
浅谈终端直接执行py文件,不需要python命令
2017/01/23 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
Python解决八皇后问题示例
2018/04/22 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
英智兴达软件测试笔试题
2016/10/12 面试题
Java如何支持I18N?
2016/10/31 面试题
留学推荐信怎么写
2014/01/25 职场文书
批评与自我批评范文
2014/10/15 职场文书
交警失职检讨书
2015/01/26 职场文书
行为规范主题班会
2015/08/13 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
Redis唯一ID生成器的实现
2022/07/07 Redis