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 相关文章推荐
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
php.ini 中文版
Oct 28 PHP
配置支持SSI
Nov 25 PHP
php对gzip文件或者字符串解压实例参考
Jul 25 PHP
linux下 C语言对 php 扩展
Dec 14 PHP
php 什么是PEAR?(第二篇)
Mar 19 PHP
php模板中出现空行解决方法
Mar 08 PHP
解析左右值无限分类的实现算法
Jun 20 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
Mar 17 PHP
PHP截取发动短信内容的方法
Jul 04 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 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
PHP 各种排序算法实现代码
2009/08/20 PHP
php截取中文字符串函数实例
2015/02/23 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
python基于Selenium的web自动化框架
2019/07/14 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
介绍一下linux的文件权限
2012/02/15 面试题
5s推行计划书
2014/05/06 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
政府四风问题整改措施
2014/10/04 职场文书
信访维稳工作汇报
2014/10/27 职场文书
2014年创卫工作总结
2014/11/24 职场文书
入团介绍人意见范文
2015/06/04 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL
详解redis在微服务领域的贡献
2021/10/16 Redis
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫