Как определить глубину подкаталогов корневых каталогов Stack Overflow

Я использую глобальную рекурсию, чтобы найти все каталоги с файлами index.php в них. То, что я пытаюсь сделать, это выяснить, выходит ли глубина за пределы определенного уровня.

Пример:
Корневая папка: /

подкаталог root: ./subdirectory/

подкаталог подкаталога: ./dubdirectory/subdirectory/

Уровень 0 будет корневой папкой.

Уровень 1 будет подкаталогом.

Уровень 2 будет подкаталогом подкаталога.

Как я могу определить, насколько глубина достигает уровня 2 или выше?

Пример псевдокода:

if ($subdirectory_depth >= 2) {
//do something;
}

Вот мой сценарий

if ( ! function_exists('glob_recursive'))
{
function glob_recursive($pattern, $flags = 0 )
{
$files = glob($pattern, $flags);
foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR) as $dir)
{
if (preg_match('#/(?:cgi-bin|css|images|includes|test)#', $dir)) continue; // exclude these directories

$files = array_merge($files, glob_recursive($dir.'/'.basename($pattern), $flags));
}
return $files;
}
}

$dirlist = glob_recursive( $dir_structure.'*index.php' );

0

Решение

Вы не можете просто посчитать число ‘/’?

Например.

<?
if ( ! function_exists('glob_recursive'))
{
function glob_recursive($pattern, $flags = 0 )
{
$files = glob($pattern, $flags);
foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR) as $dir)
{
if (preg_match('#/(?:cgi-bin|css|images|includes|test)#', $dir)) continue; // exclude these directories

$files = array_merge($files, glob_recursive($dir.'/'.basename($pattern), $flags));
}
return $files;
}
}

$dirlist = glob_recursive( '/home/storage/e/63/25/phpsandbox/ToBeDeleted/2015/may/'.'*index.php' );
$maxdept = 10;
foreach($dirlist as $filepath) {
$dept = substr_count($filepath, '/');
echo '<br>'.$filepath.' Dept: '.$dept;
if($dept > $maxdept) {
echo ' (Deeper than '.$maxdept.')';
}
}
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]