PHP使用glob函数遍历目录或文件夹的方法


Posted in PHP onDecember 16, 2014

本文实例讲述了PHP使用glob函数遍历目录或文件夹的方法。分享给大家供大家参考。具体分析如下:

一说到php遍历目录我们很多朋友会想到是opendir与readdir,这样就可以遍历目录并显示文件,但在php中有一个更简洁的遍历目录的函数glob估计很少有人知道此函数,不过我觉得比起opendir与readdir要简单多了.

PHP glob函数的使用:glob—寻找与模式匹配的文件路径.

例子,代码如下:

<?php

$fileList=glob('*.*'); 

for ($i=0; $i<count($fileList); $i++) { 

echo $fileList[$i].'<br />'; 

} 

$fileList2=glob('images/*'); 

for ($i=0; $i<count($fileList2); $i++) { 

echo $fileList2[$i].'<br />'; 

} 

$fileList3=glob('*'); 

for ($i=0; $i<count($fileList3); $i++) { 

echo $fileList3[$i].'<br />'; 

} 

?>

第一种:glob函数的参数里面是:*.* ,意思是扫描当前目录下的文件,不包括文件夹,返回的是一个数组,以下二种情况一样.

第二种:glob函数的参数里面是:images/*,是指定目录扫描所有的文件,包括文件夹,也可以扫描指定的文件类型,如:images/*.jpg;注意,如果只输入:images只会返回该文件夹名称,如果只输入:images/则什么也不会返回.

第三种:glob函数的参数里面是:*,可以扫描出当前目录下的所有文件、目录及子目录的文件.

好我们再看看opendir与readdir遍历目录,代码如下:

<?php 

/********************** 

一个简单的目录递归函数 

第一种实现办法:用dir返回对象 

***********************/ 

function tree($directory)  

{  

$mydir = dir($directory);  

echo "<ul>\n";  

while($file = $mydir->read()) 

{  

if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!=".."))  

{ 

echo "<li><font color=\"#ff00cc\"><b>$file</b></font></li>\n";  

tree("$directory/$file");  

}  

else  

echo "<li>$file</li>\n";  

}  

echo "</ul>\n";  

$mydir->close();  

}  

//开始运行 

echo "<h2>目录为粉红色</h2><br>\n";  

tree("./nowamagic"); 

/*********************** 

第二种实现办法:用readdir()函数 

************************/ 

function listDir($dir) 

{ 

if(is_dir($dir)) 

   { 

if ($dh = opendir($dir))  

{ 

   while (($file = readdir($dh)) !== false) 

{ 

if((is_dir($dir."/".$file)) && $file!="." && $file!="..") 

{ 

echo "<b><font color='red'>文件名:</font></b>",$file,"<br><hr>"; 

listDir($dir."/".$file."/");

} 

else 

{ 

if($file!="." && $file!="..") 

{ 

echo $file."<br>"; 

 } 

} 

   } 

   closedir($dh); 

} 

   } 

} 

//开始运行 

listDir("./nowamagic"); 

?>

好了大家都看到子glob与opendir与readdir遍历输入的写法了,从代码简洁上来说glob是完胜了opendir与readdir,在功能实现上达到的是相同的效果,所以推荐使用glob函数遍历目录吧。

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
用php过滤危险html代码的函数
Jul 22 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
Nov 21 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
php异常处理使用示例
Feb 25 PHP
PHP中应该避免使用同名变量(拆分临时变量)
Apr 03 PHP
windows下apache搭建php开发环境
Aug 27 PHP
微信支付开发告警通知实例
Jul 12 PHP
php 静态属性和静态方法区别详解
Apr 09 PHP
PHP实现通过文本文件统计页面访问量功能示例
Feb 13 PHP
PHP字符串与数组处理函数用法小结
Jan 07 PHP
php批量添加数据与批量更新数据的实现方法
Dec 16 #PHP
php中get_meta_tags()、CURL与user-agent用法分析
Dec 16 #PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 #PHP
php使用ereg验证文件上传的方法
Dec 16 #PHP
PHP使用pcntl_fork实现多进程下载图片的方法
Dec 16 #PHP
php中最简单的字符串匹配算法
Dec 16 #PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 #PHP
You might like
jquery UI 1.72 之datepicker
2009/12/29 Javascript
js Function类型
2011/12/04 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
Django添加favicon.ico图标的示例代码
2018/08/07 Python
Python3数字求和的实例
2019/02/19 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
通俗讲解python 装饰器
2020/09/07 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
亚马逊印度站:Amazon.in
2017/10/15 全球购物
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
C#基础面试题
2016/10/17 面试题
介绍下Lucene建立索引的过程
2016/03/02 面试题
大学生村官任职感言
2014/01/09 职场文书
元旦晚会邀请函
2014/01/27 职场文书
绿里奇迹观后感
2015/06/15 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
九不准学习心得体会
2016/01/23 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android
Ruby处理YAML和json数据
2022/04/18 Ruby