Как вывести структуру директории
Мне нужно написать скрипт который выводит дерево файлов и директорий начиная с той лдиректории в которой он находится.
function show_dir($directory)
{
if ($dir = opendir($directory))
{
while (($file = readdir($dir)) !== false)
{
if (strcmp($file,".")==0 || strcmp($file,"..")==0)
{}else
{
if (is_file($file) && strcmp($file,"2.php")!=0)
{
echo $directory."/".$file."<br>";
}
elseif (is_dir($file))
{
//$deep++;
// echo "directory $file<br>";
show_dir($file);
// Если вызывать рекурсивно это функцию снова то отображается поддиректория только до первого вхождения. Остальные директории не показываются.
}
}
}
closedir($dir);
}
Как можно продолжить вывод. Получается что функция выводит первую директорию, заходит во вторую выводит все там и на этом останавливается. И если в той директории есть директория то она туда не заходит и если нет то не возвращается в директорию выше.
подскажите плиз кто знает варианты решения такой задачи? Или я изначально неправильно мыслю?
Код:
function print_dir($d)
{
if($dir = opendir($d))
{
while($file = readdir($dir))
{
if(is_file("$d/$file"))
{
echo "
Файл: ".$file."<br>";
}
elseif(is_dir("$d/$file") && $file!='.' && $file!='..')
{
echo " <font color='red'>Дирка: </font>".$file."<br>";
print_dir("$d/$file");
}
}
}
}
print_dir($directory);
{
if($dir = opendir($d))
{
while($file = readdir($dir))
{
if(is_file("$d/$file"))
{
echo "
Файл: ".$file."<br>";
}
elseif(is_dir("$d/$file") && $file!='.' && $file!='..')
{
echo " <font color='red'>Дирка: </font>".$file."<br>";
print_dir("$d/$file");
}
}
}
}
print_dir($directory);
О спасибо большое!