ホームページ  >  記事  >  php教程  >  PHP で glob 関数を使用してディレクトリまたはフォルダーをトラバースする方法

PHP で glob 関数を使用してディレクトリまたはフォルダーをトラバースする方法

高洛峰
高洛峰オリジナル
2016-12-21 16:20:421095ブラウズ

この記事の例では、PHP が glob 関数を使用してディレクトリまたはフォルダーを移動する方法を説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです:

PHP でディレクトリを走査するというと、多くの友人はディレクトリを走査してファイルを表示できる opendir と readdir を思い浮かべるでしょう。しかし、PHP にはより簡潔な関数 glob があります。この関数について知っている人はほとんどいないと思われますが、opendir や readdir よりもはるかに簡単だと思います。

PHP glob 関数の使用法: パターンに一致するファイル パスを見つけます。例のコードは次のとおりです。

<?php
$fileList=glob(&#39;*.*&#39;); 
for ($i=0; $i<count($fileList); $i++) { 
echo $fileList[$i].&#39;<br />&#39;; 
} 
$fileList2=glob(&#39;images/*&#39;); 
for ($i=0; $i<count($fileList2); $i++) { 
echo $fileList2[$i].&#39;<br />&#39;; 
} 
$fileList3=glob(&#39;*&#39;); 
for ($i=0; $i<count($fileList3); $i++) { 
echo $fileList3[$i].&#39;<br />&#39;; 
} 
?>

最初のタイプ: glob 関数 パラメーターは次のとおりです: *.*。これは、現在のディレクトリ内のファイルをスキャンし、フォルダーを除外し、配列を返すことを意味します。

次の 2 つの状況は同じです。


2 番目: glob 関数のパラメーターは次のとおりです:images/* は、フォルダーを含むすべてのファイルをスキャンするディレクトリを指定します。また、images/*.jpg などの指定されたファイル タイプもスキャンできます。 「images」と入力するだけで、フォルダー名のみが返されます。 「images/」と入力すると、何も返されません。

3 番目のタイプ: glob 関数のパラメーターは次のとおりです: *、すべてのファイル、ディレクトリをスキャンできます。

OK、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=&#39;red&#39;>文件名:</font></b>",$file,"<br><hr>"; 
listDir($dir."/".$file."/");
} 
else 
{ 
if($file!="." && $file!="..") 
{ 
echo $file."<br>"; 
 } 
} 
   } 
   closedir($dh); 
} 
   } 
} 
//开始运行 
listDir("./nowamagic"); 
?>

さて、皆さんはサブグロブ、opendir、readdir を記述してディレクトリを走査する方法を見てきました。コードの単純さの点では、glob は opendir と readdir よりも優れていますが、機能実装の点では同じ効果が得られるため、ディレクトリをトラバースするには glob 関数を使用することをお勧めします。

この記事が皆様の PHP プログラミング設計に役立つことを願っています。

PHP が glob 関数を使用してディレクトリまたはフォルダーをトラバースする方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。