Ordnerstruktur auslesen und anzeigen

ja, die alphabetische Reihenfolge stimmt nicht ... aber die ersten 2 ebenen sind die wichtigsten und die funktionieren ja jetzt

nochmal alles zusammengefasst:

die ordner im dateisystem

ordnerstruktur-png.63461


der aktuelle code

PHP:
<?php

$dir    = opendir("Events/");
$folders  = array();

while ($folder = readdir ($dir))
    {
     if ($folder != "." AND $folder != "..")
      $folders[] = $folder;
    }
  
closedir($dir);
natsort($folders);

    foreach($folders AS $folder)
        {
?>
<div class="archiv">
<?php      
        echo "<h2>$folder</h2>"; // Ausgabe Jahr
      
        $dir1    = opendir("Events/$folder"); // Auflistung Jahre
        $folders1  = array();

        while ($folder1 = readdir ($dir1))
            {
             if ($folder1 != "." AND $folder1 != "..")
              $folders1[] = $folder1;
            }
  
        closedir($dir1);
        natsort($folders1);

            foreach($folders1 AS $folder1)
                {
      
                $dir2="Events/$folder/$folder1/"; // Auflistung Events
                $handle=opendir($dir2);
          
                while (false !==($folder2=readdir($handle))) {   
                    if (is_dir($dir2.$folder2) and $folder2 !=="." and $folder2 !=="..") {
                  
                        if ($folder2 == "Bilder") {
                        echo "<b>$folder1 / </b><a href='index.php?page=bilder.php&imagepath=$dir2$folder2'>$folder2</a></br>"; //Ausgabe Bilderlink
                        }
                        if ($folder2 == "Videos") {
                        echo "<b>$folder1 / </b><a href='index.php?page=$dir2$folder2/videos.php'>Videos</a></br>"; // Ausgabe Videolink
                        }
              
                            $dir3="Events/$folder/$folder1/$folder2/"; // Auflistung Events Unterordner
                            $handle1=opendir($dir3);
          
                            while (false !==($folder3=readdir($handle1))) {   
                                if (is_dir($dir3.$folder3) and $folder3 !=="." and $folder3 !=="..") {     
                          
                                    if ($folder3 == "Bilder") {
                                     echo "<b>$folder1 / $folder2 / </b><a href='index.php?page=bilder.php&imagepath=$dir3$folder3'>$folder3</a></br>"; // Ausgabe Bilderlink Unterordner
                                    }
                                }
                            }
                    }
                }
                echo "</br>";
                }
?>
</div>
<?php
        }

    closedir($handle1);
    closedir($handle);

?>

und so wird's ausgegeben --> http://seitelschlag.at/index.php?page=imagearchives.php
wenn man die Reihenfolge vom dateisystem mit der ausgabe vergleicht sieht man die unterschiede
 
Hast du dir mal die Funktion Scandir angesehen??
Siehe mein Post (war die #17)
Bei der kann man die Sort Order bestimmen.
 
Hallo,

schau mal, ob das dir weiter hilft:

PHP:
<?php

$start_dir = 'd:/web/htdocs';

function get_list_recursive($path, &$structure = array(), $root = null)
{
   $subdir = new ArrayObject();
   foreach(new DirectoryIterator($path) as $iter)
   {
     if($iter->isDot()) continue;
     
     if($iter->isDir())
     {
       get_list_recursive($iter->getPathname(), $structure, $path);
     }
     else
     {
       $subdir->append($iter->getFilename());
     }
     $iter->next();
   }
   $subdir->asort();
   
   $rel_path = str_replace($root ? $root : $path, '', $path);
  $structure[$rel_path ? str_replace('\\', '/', $rel_path) : '.'] = (array)$subdir;
}

$structure = array();
get_list_recursive($start_dir, $structure);

ksort($structure, SORT_STRING | SORT_ASC);

var_dump($structure);
 
Zurück