Tom: Fehler gefunden. Rekursive Funktion für Directory-baum

Beitrag lesen

Hello,

habe den Fehler gefunden.
Man muss natürlich bei is_dir($dir."/".$filename) auch im passenden Verzeichnis nachschauen. *grummel*

Und hier nun noch die gewünschte rekursive Funktion für get_tree() und die reparierte für get_subdirs()

<?php   ### dirlist.php ###

Funktionen zur Erzeugung einer Directoryliste

//----------------------------------------------------
function get_subdirs($dir)
{
  $dirlist=array();

$dh=@opendir($dir);
  if ($dh)
  {
    while ($filename=readdir($dh))
    {
      if (is_dir($dir."/".$filename) and ($filename !=".") and ($filename !=".."))
      {
        $dirlist[]=$filename;
      }
    }
    closedir($dh);
  }
  else
  {
    // ggf. Fehlermeldung setzen
    return false;
  }

asort($dirlist);
  return $dirlist;
}
//-----------------------------------------------------
function get_tree($dir)
{
  $dirlist=array();

$dh=@opendir($dir);
  if ($dh)
  {
    while ($filename=readdir($dh))
    {
      if (is_dir($dir."/".$filename) and ($filename !=".") and ($filename !=".."))
      {
        $dirlist[$filename]= get_tree($dir."/".$filename);
      }
      elseif(is_file($dir."/".$filename))
      {
        $dirlist[]=$filename;
      }
    }
    closedir($dh);
  }
  else
  {
    // ggf. Fehlermeldung setzen
    return false;
  }

asort($dirlist);
  return $dirlist;
}
//======================================================

$tree = get_tree("..");

echo "<pre>";
print_r($tree);
echo "</pre>";

?>

Grüße

Tom