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中操作Excel实例代码
Apr 29 PHP
PHP批量检测并去除文件BOM头代码实例
May 08 PHP
PHP解码unicode编码的中文字符代码分享
Aug 13 PHP
php二维数组合并及去重复的方法
Mar 04 PHP
ThinkPHP中order()使用方法详解
Apr 19 PHP
PHP之图片上传类实例代码(加了缩略图)
Jun 30 PHP
浅谈php中curl、fsockopen的应用
Dec 10 PHP
php获取数据库中数据的实现方法
Jun 01 PHP
PHP实现动态删除XML数据的方法示例
Mar 30 PHP
vmware linux系统安装最新的php7图解
Apr 14 PHP
PHP钩子实现方法解析
May 21 PHP
Laravel 类和接口注入相关的代码
Oct 15 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自动选择 连接本地还是远程数据库
2010/12/02 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
window.location.hash 属性使用说明
2010/03/20 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
python正则表达式抓取成语网站
2013/11/20 Python
Python Socket编程入门教程
2014/07/11 Python
Python标准库之Sys模块使用详解
2015/05/23 Python
Python中基础的socket编程实战攻略
2016/06/01 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
Python学习笔记之视频人脸检测识别实例教程
2019/03/06 Python
python实现静态服务器
2019/09/05 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
python脚本后台执行方式
2019/12/21 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
应届大学生求职信
2013/12/01 职场文书
中学生思想品德评语
2014/12/31 职场文书
2015年教研组工作总结
2015/05/04 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
红楼梦读书笔记
2015/06/25 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
redis lua限流算法实现示例
2022/07/15 Redis