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 相关文章推荐
基于文本的访客签到簿
Oct 09 PHP
PHP中__get()和__set()的用法实例详解
Jun 04 PHP
使用ob系列函数实现PHP网站页面静态化
Aug 13 PHP
php计划任务之ignore_user_abort函数实现方法
Jan 08 PHP
php+ajax制作无刷新留言板
Oct 27 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
Yii中表单用法实例详解
Jan 05 PHP
CI框架整合smarty步骤详解
May 19 PHP
微信红包随机生成算法php版
Jul 21 PHP
PHPMailer发送邮件
Dec 28 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
PHP实现的AES 128位加密算法示例
Sep 16 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
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
js window.onload 加载多个函数的方法
2009/11/02 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
JavaScript利用HTML DOM进行文档操作的方法
2016/03/28 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
Python重新引入被覆盖的自带function
2014/07/16 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
python+pandas分析nginx日志的实例
2018/04/28 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
python实现横向拼接图片
2020/03/23 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
网站开发实习生的自我评价
2013/12/11 职场文书
大学军训感言1000字
2014/02/25 职场文书
清明节演讲稿
2014/05/27 职场文书
党校学习心得体会范文
2014/09/09 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
Oracle 区块链表创建过程详解
2021/05/15 Oracle