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程序的php代码
Apr 07 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
Codeigniter校验ip地址的方法
Mar 21 PHP
PHP多维数组遍历方法(2种实现方法)
Dec 10 PHP
php 指定范围内多个随机数代码实例
Jul 18 PHP
PHP构造函数与析构函数用法示例
Sep 28 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
CI框架入门之MVC简单示例
Nov 21 PHP
php源码之将图片转化为data/base64数据流实例详解
Nov 27 PHP
THINKPHP3.2使用soap连接webservice的解决方法
Dec 13 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
PHP中的串行化变量和序列化对象
2006/09/05 PHP
PHP cron中的批处理
2008/09/16 PHP
PHP文章按日期(月日)SQL归档语句
2012/11/29 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
浅谈JavaScript中的字符编码转换问题
2015/07/07 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
详解javascript中的事件处理
2015/11/06 Javascript
Json解析的方法小结
2016/06/22 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
Vue 3.0双向绑定原理的实现方法
2019/10/23 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
项目计划书范文
2014/01/09 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
公证委托书格式
2014/09/13 职场文书
安阳殷墟导游词
2015/02/10 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
2022/04/11 Vue.js