Auslesen von Ordnernamen und einfügen in Navigation

A

Ankert

Hallo;)
Da dies nun für diese Frage das richtige Forum is, hier meine Frage:
Meine Ordnerstruktur auf dem Server sieht folgendermaßen aus:

Rootverzeichnis
-pics(für Hintergrundbilder Banner usw.)
-inc (alle include Dateien
-bilder(mein Galeryscript)
--css
--js
--galerien
---Galeriename1
----images
----thumbs
---Galeriename2
----images
----thumbs
---Galeriename3
----images
----thumbs


Nun soll in meiner Navigation auf die verschiedenen Galerien verwiesen werden, also Galeriename1, Galeriename2 usw.
Da später immer neue Galerien dazu kommen können, soll das Script mit der Navigation, also die nav.inc.php die Ordner auslesen und und die links auf die Galerienamen legen.

Hier der code der nav.inc.php im Ordner inc:

PHP:
<?
echo "<div id='nav'>";
echo '<ul id="navi">';
echo '<li><a href="#">Home</a><br>';
echo '</li>';
echo '<li><a href="#">Annika</a><br>';
echo '</li>';
echo '<li><a href="#">Alexander</a><br>';
echo '</li>';
echo '<li><a href="#">Zwombies</a><br>';
echo '</li>';
echo '<li><a href="#">Zwombies</a><br>';
echo '</li>';
echo '<li><a href="#">Leo</a><br>';
echo '</li>';
echo '<li><a href="#">Bildergalerie</a><br>';
     echo '<ul>';
          echo '<li>Hier sollen die Galerienamen gelistet werden</li><br>';
          echo '<li>Hier sollen die Galerienamen gelistet werden</li><br>';
          echo '</ul>';
    echo '</li>';
echo '<li><a href="#">Impressum</a><br>';
echo '</li>';
echo '</ul>';
echo '</div>'; // Nimm dieses </div> in deinem Code auf. Dort fehlt es noch immer seit heute Mittag im CSS-Board, obwohl darauf hingewiesen  wurde.

Wäre klasse wenn ihr helfen könntet.
Liebe Grüße
Alexander
 
Probiere einmal das hier:

PHP:
<?php
   function directoryBrowser($foo)
   {	  
      $path = @opendir($foo);
      while($findnext = @readdir($path))
      {
         if($findnext != '.' && $findnext != '..')
         {
            if(@is_dir($foo.'/'.$findnext))
            {
               filebrowser($foo.'/'.$findnext);//Funktion rekursiv aufrufen!
               $bar[] = $foo.'/'.$findnext;
            }
         }
      }
      @closedir($path);
      return $bar;
   }
   $dir = 'bilder/galerien';
   
   if($array = @array_map(null,directoryBrowser($dir)))
   {
         
      foreach($array as $elements)
      {
         if('Galeriename' == substring($elements,0,10))
         {
            echo $elements.'<br/>';
         }
      }

   }
?>
 
Danke für die Info, allerdings steh ich grad voll auf dem Schlauch. Kannst du mir sagen, wie ich das in meinen Code einbinde?
Weil ne direkte AUsgabe erzeugt dein Code ja nich und mein PHP is in letzter Zeit arg eingerostet:(
 
Probiere einmal das hier:

PHP:
<?php
echo "<div id='nav'>";
echo '<ul id="navi">';
echo '<li><a href="#">Home</a><br>';
echo '</li>';
echo '<li><a href="#">Annika</a><br>';
echo '</li>';
echo '<li><a href="#">Alexander</a><br>';
echo '</li>';
echo '<li><a href="#">Zwombies</a><br>';
echo '</li>';
echo '<li><a href="#">Zwombies</a><br>';
echo '</li>';
echo '<li><a href="#">Leo</a><br>';
echo '</li>';
echo '<li><a href="#">Bildergalerie</a><br>';
echo '<ul>';

   function directoryBrowser($foo)
   {	  
      
      $path = @opendir($foo);
      
      while($findnext = @readdir($path))
      {
         if($findnext != '.' && $findnext != '..')
         {
            if(@is_dir($foo.'/'.$findnext))
            {
               
               directoryBrowser($foo.'/'.$findnext);//Funktion rekursiv aufrufen!               
               $bar[] = $foo.'/'.$findnext;
               
            }
         }
      }
      
      closedir($path);
      return $bar;
      
   }
   
   $dir = 'bilder/galerien';
   
  echo $string;
 
   if($array = @array_map(null,directoryBrowser($dir)))
   {
         
      foreach($array as $elements)
      {
         if(substr($elements,16,11) == 'Galeriename')
         {
            echo '<li>'.substr($elements,16).'</li><br>';
         }
      }

   }
echo '</ul>';
echo '</li>';
echo '<li><a href="#">Impressum</a><br>';
echo '</li>';
echo '</ul>';
echo '</div>';
?>

Sorry!

Gruß
 
Hm, mit dem Codeschnippsel komm ich irgendwie nich weiter, aber ich hab folgendes ausprobiert:

PHP:
<?
echo "<div id='nav'>";
echo '<ul id="navi">';
echo '<li><a href="#">Home</a><br>';
echo '</li>';
echo '<li><a href="#">Annika</a><br>';
echo '</li>';
echo '<li><a href="#">Alexander</a><br>';
echo '</li>';
echo '<li><a href="#">Zwombies</a><br>';
echo '</li>';
echo '<li><a href="#">Leo</a><br>';
echo '</li>';
echo '<li><a href="#">Bildergalerie</a><br>';
     echo '<ul>';
     $dir    = '../bilder/galerien';
$files = scandir($dir);
foreach($files AS $galerie)
   {
    echo '<li><a href="bilder/index.php?galerie='.$galerie.'">'.$galerie.'</a></li><br>';
   }     
          echo '</ul>';
    echo '</li>';
echo '<li><a href="#">Impressum</a><br>';
echo '</li>';
echo '</ul>';
echo '</div>'; // Nimm dieses </div> in deinem Code auf. Dort fehlt es noch immer seit heute Mittag im CSS-Board, obwohl darauf hingewiesen  wurde.
?>

funktioniert auch soweit ich das erblicke recht gut. Das Array $files is folgendes:
Array ( [0] => . [1] => .. [2] => Landschaften [3] => Makros [4] => Tierwelt )
Naja ich kann mir auf die ersten beiden mit den Punkten keinen Reim machen...
 
Sorry, habe deine Einleitung nicht richtig gelesen.


PHP:
<?php
   // Wenn die index.php im Ordner "bilder" liegt!
   $dir    = 'galerien';
   // Mit @ Fehlermeldung unterdrücken, wenn Ordner "bilder" keine Verzeichnisse hat!"
   $files = @scandir($dir);
   foreach($files AS $galerie)
   {
      //Prüfen ob $galerie auch wirklich ein Verzeichnis ist.
      if(@is_dir($dir.'/'.$galerie))
      {
         //Einträge "." und ".." unterdrücken!
         if($galerie != '.' && $galerie != '..')
         {
            echo '<li><a href="bilder/index.php?galerie='.$galerie.'">'.$galerie.'</a></li>';
         }
      }
   }
?>

Gruß
 
Zuletzt bearbeitet von einem Moderator:
Mal wieder als Einwurf:

[phpf]glob[/phpf] ist m. E. n. schöner zu handhaben als [phpf]scandir[/phpf] und andere Funktionen.
 

Neue Beiträge

Zurück