PHPでディレクトリ内のディレクトリの量を効率的に決定するにはどうすればよいですか?
たとえば、これを構造として持っているとしましょう:
/Directory/ -->
... /Directory 1/
... /Directory 2/
... /Directory 3/
... File.txt
... Filed2.txt
現在のまたはファイル自体を含めないように、それらが3つのディレクトリであることを知っておくと便利です。
PHPでディレクトリ内のディレクトリの量を効率的に決定するにはどうすればよいですか?
たとえば、これを構造として持っているとしましょう:
/Directory/ -->
... /Directory 1/
... /Directory 2/
... /Directory 3/
... File.txt
... Filed2.txt
現在のまたはファイル自体を含めないように、それらが3つのディレクトリであることを知っておくと便利です。
このコードはそれを行います:
$count = -2; // Subtract 2 for directories "." and ".."
$dh = opendir('path/to/dir');
while (false !== ($filename = readdir($dh)))
if(is_dir($filename))
$count++;
$count
値を割り当てる理由-2
は、現在のディレクトリと親ディレクトリを考慮するためです。これにより、隠しディレクトリを含むすべてのディレクトリがカウントされます。Linux システムで非表示にしたくない場合は、最初の文字が.
usingfalse !== strpos($filename, '.')
であるかどうかを確認$count
し、0
代わりに-2
.
$path = 'Directory';
echo ( count ( glob("$path/*", GLOB_ONLYDIR) ) );