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 相关文章推荐
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
PHP校验ISBN码的函数代码
Jan 17 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
Jun 20 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
Jul 01 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
替换php字符串中的单引号为双引号的方法
Feb 16 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
Yii框架操作cookie与session的方法实例详解
Sep 04 PHP
Laravel 前端资源配置教程
Oct 18 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
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
jQuery Ajax 全解析
2009/02/08 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
window.returnValue使用方法示例介绍
2014/07/03 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python实现的简单hangman游戏实例
2015/06/28 Python
Python作用域用法实例详解
2016/03/15 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
python 获取图片分辨率的方法
2019/01/08 Python
Python面向对象之类的定义与继承用法示例
2019/01/14 Python
python能做什么 python的含义
2019/10/12 Python
python爬虫之遍历单个域名
2019/11/20 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
简单了解django文件下载方式
2020/02/10 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
护理专业的自荐信
2013/10/22 职场文书
酒店管理专业毕业生推荐信
2013/11/10 职场文书
《草原的早晨》教学反思
2014/04/08 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python
redis数据结构之压缩列表
2022/03/21 Redis
python高温预警数据获取实例
2022/07/23 Python