Рекурсивное сканирование директорий

Kuzya

Новичок
Рекурсивное сканирование директорий

Всем хай. Понадобилось написать скрипт который бы рекурсивно сканировал все директории на наличие в них, опять же, директорий и все пути к найденным директориям сливал в один массив. Набросал такой код:
PHP:
<?php
$dirs = array();
$self = $_SERVER['PHP_SELF'];
$path = str_replace(substr($self,1,strlen($self)),"",__FILE__);

function browse_dir($dir_name)
{
	global $dirs,$path;

	$d = dir($dir_name);
// Смотрим есть ли в папке под-папки
	while ( false !== ( $object_name = $d->read() ) ) {
		if (is_dir($object_name) && $object_name !== ".." && $object_name !== ".")
		{
			$dirs[$path.$object_name."\\"] = false;
		}
	}

    $dirs[$dir_name] = true;
	$d->close();
}

browse_dir($path);
foreach($dirs as $key => $value)
{
	if ($dirs[$key] === false)
	{
		browse_dir($key);
	}
}



print_r($dirs);

?>
Данный код нормально сканирует только ту директорию, в которой он сам находится. Как сделать так что бы он просканировал найденные директории - ума не приложу.
 

ustas

Элекомист №1
и global я бы не ипользовал, и возвращал бы готовый массив.
начинай все вопросы отсюда http://www.php.net/manual/ru/ref.dir.php#61285
 

Kuzya

Новичок
На счёт рекурсии: пытался сделать так:
PHP:
 while ( false !== ( $object_name = $d->read() ) ) {
        if (is_dir($object_name) && $object_name !== ".." && $object_name !== ".")
        {
            browse_dir($path.$object_name."\\");
            $dirs[$path.$object_name."\\"] = false;
        }
    }
Но всё равно не получается почему то. Поддиректории в массив не вносятся.
За ссылку
http://www.php.net/manual/ru/ref.dir.php#61285
спасибо =) Помогло
 

ustas

Элекомист №1
Kuzya
желательно что бы эту ссылочку ты запомнил, там много таких на любые темы
 
Сверху