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 相关文章推荐
PHPMailer安装方法及简单实例
Nov 25 PHP
php数据库连接时容易出错的特殊符号问题
Sep 01 PHP
PHP中输出转义JavaScript代码的实现代码
Apr 22 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
Aug 31 PHP
php获取参数的几种方法总结
Feb 18 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
Aug 25 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
Jan 19 PHP
php模拟post上传图片实现代码
Jun 24 PHP
PHP获取当前文件的父目录方法汇总
Jul 21 PHP
Yii2单元测试用法示例
Nov 12 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
php修改word的实例方法
Nov 17 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
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
python共享引用(多个变量引用)示例代码
2013/12/04 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
Python标准库shutil用法实例详解
2018/08/13 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
有原因的手表:Flex Watches
2019/03/23 全球购物
一些Solaris面试题
2013/03/22 面试题
新闻系毕业生推荐信
2013/11/16 职场文书
活动策划邀请函
2014/02/06 职场文书
学习型班组申报材料
2014/05/31 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏
python中的random模块和相关函数详解
2022/04/22 Python