scandir 関数は、指定したディレクトリ内のディレクトリ名、ファイル名を一挙に取得する。
取得された値(文字列)にはそれらが混在していることになる。それらにはパス名は付かない。


define( "TARGET" , "../../php" );

$dlist = scandir(TARGET);
//昇順(a,b,c)、大文字は小文字より先になる(ASCIIコード順)。

//$dlist = scandir(TARGET, 1);
//降順(c,b,a)

foreach($dlist as $value)
{
	if(is_dir(TARGET . "/" . $value))
	{
		//「.」「..」を含む。
		echo $value."<br>\n";
	}
}

echo "<br>\n";

foreach($dlist as $value)
{
	if(is_file(TARGET . "/" . $value))
	{
		echo $value."<br>\n";
	}
}


PHP Ver.5 の場合

scandirを使う。
ファイル名の昇順・降順の切り替えが簡単である。


//▼ファイル検索(再帰)
function Search($targetpath)
{
    $dlist=scandir($targetpath,1);
    //降順(c,b,a)である。昇順にする場合は第2引数をカットする。

    foreach($dlist as $file)
    {
        if($file==".") continue;
        if($file=="..") continue;

        if(is_dir($targetpath."/".$file))
        //引数を$fileとするだけでは正常に動作しない
        {
            $filepath=$targetpath."/".$file;
            Search($filepath);
            //ディレクトリの場合は再帰的に呼び出す
        }
        else
        {
            $Parts=pathinfo($targetpath."/".$file);
            if($Parts['extension']==FILE_EXT)
            {
                CheckFile($targetpath."/".$file);
                //原則htmlファイルの場合は内容チェック
            }
        }
    }
}

¶find.php


PHP Ver.4 の場合

opendir,readdir,closedirを使う。
ファイル名の昇順・降順の切り替えが面倒である(できない)。


//▼ファイル検索(再帰)
function Search($targetpath)
{
    if($hd=opendir($targetpath))
    {
        while( ($file=readdir($hd)) !== false)
        {
            if($file==".") continue;
            if($file=="..") continue;

            if(is_dir($targetpath."/".$file))
            //引数を$fileとするだけでは正常に動作しない
            {
                $filepath=$targetpath."/".$file;
                Search($filepath);
                //ディレクトリの場合は再帰的に呼び出す
            }
            else
            {
                $Parts=pathinfo($targetpath."/".$file);
                if($Parts['extension']==FILE_EXT)
                {
                    CheckFile($targetpath."/".$file);
                    //原則htmlファイルの場合は内容チェック
                }
            }
        }
    }
    closedir($hd);
}

¶find_org.php




このサンプルの実行