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实现的简单压缩英文字符串的代码
Apr 24 PHP
PHP 创建标签云函数代码
May 26 PHP
php对大文件进行读取操作的实现代码
Jan 23 PHP
解析phpstorm + xdebug 远程断点调试
Jun 20 PHP
深入理解PHP中的Session和Cookie
Jun 21 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
php简单定时执行任务的实现方法
Feb 23 PHP
php编写的抽奖程序中奖概率算法
May 14 PHP
既简单又安全的PHP验证码 附调用方法
Jun 02 PHP
利用PHP生成静态html页面的原理
Sep 30 PHP
Yii2实现多域名跨域同步登录退出
Feb 04 PHP
is_file和file_exists效率比较
Mar 14 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
2011/12/28 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
js重写方法的简单实现
2016/07/10 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
设置python3为默认python的方法
2018/10/31 Python
python3实现名片管理系统
2020/11/29 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
Python实现最常见加密方式详解
2019/07/13 Python
python retrying模块的使用方法详解
2019/09/25 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
COS美国官网:知名服装品牌
2019/04/08 全球购物
小学美术教学反思
2014/02/01 职场文书
大型活动组织方案
2014/05/10 职场文书
运动会广播稿诗歌版
2014/09/12 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书
win11开机发生死循环重启怎么办?win11开机发生死循环重启解决方法
2022/08/05 数码科技