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版)
Oct 09 PHP
ip签名探针
Oct 09 PHP
php mssql 日期出现中文字符的解决方法
Mar 10 PHP
php eval函数用法总结
Oct 31 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 PHP
php中将一段数据存到一个txt文件中并显示其内容
Aug 15 PHP
php基本函数汇总
Jul 09 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
CodeIgniter框架验证码类库文件与用法示例
Mar 18 PHP
PHP弱类型语言中类型判断操作实例详解
Aug 10 PHP
Laravel 自定命令以及生成文件的例子
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
php magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
解析php取整的几种方式
2013/06/25 PHP
php获取汉字首字母的函数
2013/11/07 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
php简单日历函数
2015/10/28 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
javascript 动态添加表格行
2006/06/22 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
详解python编译器和解释器的区别
2019/06/24 Python
python不同系统中打开方法
2020/06/23 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
介绍下static、final、abstract区别
2015/01/30 面试题
中层竞聘演讲稿
2014/01/09 职场文书
局火灾防控工作方案
2014/05/25 职场文书
应聘教师求职信
2014/07/19 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
2015年社区计生工作总结
2015/04/21 职场文书