Heim  >  Artikel  >  Backend-Entwicklung  >  PHP使用glob函数遍历目录或文件夹的方法_PHP

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

WBOY
WBOYOriginal
2016-05-31 18:15:231022Durchsuche

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

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

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

例子,代码如下:

代码如下:

$fileList=glob('*.*');
for ($i=0; $i echo $fileList[$i].'
';
}
$fileList2=glob('images/*');
for ($i=0; $i echo $fileList2[$i].'
';
}
$fileList3=glob('*');
for ($i=0; $i echo $fileList3[$i].'
';
}
?>


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

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

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

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

代码如下:

/**********************
一个简单的目录递归函数
第一种实现办法:用dir返回对象
***********************/
function tree($directory) 

$mydir = dir($directory); 
echo "

    \n"; 
    while($file = $mydir->read())

    if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!="..")) 
    {
    echo "
  • $file
  • \n"; 
    tree("$directory/$file"); 

    else 
    echo "
  • $file
  • \n"; 

    echo "
\n"; 
$mydir->close(); 

//开始运行
echo "

目录为粉红色


\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 "文件名:",$file,"

";
listDir($dir."/".$file."/");
}
else
{
if($file!="." && $file!="..")
{
echo $file."
";
 }
}
   }
   closedir($dh);
}
   }
}
//开始运行
listDir("./nowamagic");
?>
好了大家都看到子glob与opendir与readdir遍历输入的写法了,从代码简洁上来说glob是完胜了opendir与readdir,在功能实现上达到的是相同的效果,所以推荐使用glob函数遍历目录吧。

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn