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 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
PHP之变量、常量学习笔记
Mar 27 PHP
用php实现的下载css文件中的图片的代码
Feb 08 PHP
PHP 数组基础知识小结
Aug 20 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
用PHP来计算某个目录大小的方法
Apr 01 PHP
PHP生成各种常见验证码和Ajax验证过程
Jan 10 PHP
PHP读取大文件的多种方法介绍
Apr 04 PHP
各种快递查询--Api接口
Apr 26 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 PHP
laravel ORM关联关系中的 with和whereHas用法
Oct 16 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遍历文件夹与子目录的函数代码
2011/09/26 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
降低PHP Redis内存占用
2017/03/23 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
2020/06/17 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
python网络爬虫采集联想词示例
2014/02/11 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
浅谈Python NLP入门教程
2017/12/25 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
利用python爬取有道词典的方法
2020/12/08 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
员工入职担保书范文
2014/04/01 职场文书
体育教师个人工作总结
2015/02/09 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技
MySQL学习必备条件查询数据
2022/03/25 MySQL