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 选项及相关信息函数库
Dec 04 PHP
使用php重新实现PHP脚本引擎内置函数
Mar 06 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
数据库中排序的对比及使用条件详解
Feb 23 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
Jul 01 PHP
apache php模块整合操作指南
Nov 16 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
Jan 27 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
Nov 13 PHP
php中eval函数的危害与正确禁用方法
Jun 30 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
php输出控制函数和输出函数生成静态页面
Jun 27 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 23 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中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
jQuery 浮动广告实现代码
2008/12/25 Javascript
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
javascript中this指向详解
2016/04/23 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
python3 kmp 字符串匹配的方法
2018/07/07 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
详解django中Template语言
2020/02/22 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
python 深度学习中的4种激活函数
2020/09/18 Python
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
大三毕业自我鉴定
2014/01/15 职场文书
大学班长竞选稿
2015/11/20 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书