Seite 1 von 1

Hauptverzeichnis mit Unterverzeichnisse

Verfasst: 21.08.2005 17:22
von seni
Beschäftige mich seit zwei Monaten mit PHP.
Ich habe nun eine Frage:Wie kann ich in PHP von einem Verzeichnis die Unterverzeichnisse öffnen.
z.B: mein Verzeichnis = "Bilder" die darin befindlichen Unterverzeichnisse "Tiere" und "Blumen". Mit dem folgenden Script werden nur die Huptverzeichnisse geöffnet:

Code: Alles auswählen

<?php
$picdir="."; // oder $picdir= "Bilder"
$dpic=opendir($dpicdir);
while ($folder=readdir($dpic))
{
if ($folder!="." && &folder!=".." && is_dir($folder)
}
usw. .....
Habe einige Zeit herumprobiert, aber ohne Erfolg.
Bitte um Hilfe.
Danke
Seni

Verfasst: 21.08.2005 17:49
von kratzer54847

Code: Alles auswählen

$picdir="."; 
$check = opendir("$picdir");

while (($file = readdir($check))!==false)
{
   if(is_dir($file))
  {
          if($file != "." && $file != "..")
         {
                 // Ordner vorhanden und gefüllt
                // Hier kannst du jetzt die Unterverzwichnisse öffnen:
               $picdirsub="/irgend ein Unterverzeichnis"; 
               $check = opendir("$picdirsub");
     
         }
         else
         {
                // Ordner vorhanden und leer
         }
   }
   else
   {
               // Ordner nicht vorhanden
    }
} 
frei nach php.net
Es wird zunächst geprüft, ob das Hauptverzeichnis besteht, dann wird das Unterverzeichnis ausgelesen

Verfasst: 21.08.2005 19:19
von seni
Habe es versucht, aber ohne Erfolg. Ich glaube, dass weiter unter imCode noch was zu ändern ist. Deshalb habe ich den Code erweitert und hier gepost.
Bitte um Ergänzung.

Code: Alles auswählen

 <? 
 
// config variable
 
$col =2;  // number of column
$maxrow = 1; // max row for table
$picdir = ".";  

$dpic = opendir($picdir);
while($folder = readdir($dpic)) 
{
 if($folder!="." && $folder!=".." && is_dir($folder)   )
 {
 if(substr($folder,-3)!="jpg")
   $seldir[] = $folder;
 }
}
/////////////////////////////////////////////////////////
// natural alphabetical sort of directory available
// if you have problem or error, comment the line below
  natsort($seldir);
/////////////////////////////////////////////////////////

  foreach($seldir as $value)
{
   $dirname = strtoupper(str_replace(" ","_ ",$value));
  $alldir[] = "$value";
}
 // $alldir = array("auto","car","caravan","truck");  // the directory where your images are
 //  print the category list
  print "<table width=\"570\" border=\"0\"  cellspacing=\"0\" cellpadding=\"2\">";
   print "<tr><td  width=\"160\" valign=\"top\"><div style=\"height:100%\">";
  print "<div class=\"titsmall\">Wähle den Bildordner :</div>";
foreach($alldir as $key)
{
 $dirname = strtoupper(str_replace("_"," ",$key));
 print "<a href=\"deutsch.php?hm=akt&um=bild&dir=$key\" class=\"cat\">$dirname &raquo;</a> ";
}
print "</div></td>";
print "<td width=\"390\" align=\"center\"><br />";


 if(isset($dir))
 {
  // open the directory
  $dh = opendir("$picdir/$dir");
  while($file = readdir($dh))
  {
   if( (substr($file,-3)=="gif") || (substr($file,-3)=="jpg") || (substr($file,-3)=="JPG") )
   {
    // insert all images in array
    $a_img[] = $file;
   }
  }
  $totimg = count($a_img); // total images number
  $totxpage = $col*$maxrow; // images x page
  $totpages = ($totimg%$totxpage==0)?((int)$totimg/$totxpage):((int)($totimg/$totxpage)+1); // number of total pages
Wäre froh,wenn das irgendwie zu machen wäre.
<?

// config variable

$col =2; // number of column
$maxrow = 1; // max row for table
$picdir = ".";

$dpic = opendir($picdir);
while($folder = readdir($dpic))
{
if($folder!="." && $folder!=".." && is_dir($folder) )
{
if(substr($folder,-3)!="jpg")
$seldir[] = $folder;
}
}
/////////////////////////////////////////////////////////
// natural alphabetical sort of directory available
// if you have problem or error, comment the line below
natsort($seldir);
/////////////////////////////////////////////////////////

foreach($seldir as $value)
{
$dirname = strtoupper(str_replace(" ","_ ",$value));
$alldir[] = "$value";
}
// $alldir = array("auto","car","caravan","truck"); // the directory where your images are
// print the category list
print "<table width=\"570\" border=\"0\" cellspacing=\"0\" cellpadding=\"2\">";
print "<tr><td width=\"160\" valign=\"top\"><div style=\"height:100%\">";
print "<div class=\"titsmall\">Wähle den Bildordner :</div>";
foreach($alldir as $key)
{
$dirname = strtoupper(str_replace("_"," ",$key));
print "<a href=\"deutsch.php?hm=akt&um=bild&dir=$key\" class=\"cat\">$dirname &raquo;</a> ";
}
print "</div></td>";
print "<td width=\"390\" align=\"center\"><br />";


if(isset($dir))
{
// open the directory
$dh = opendir("$picdir/$dir");
while($file = readdir($dh))
{
if( (substr($file,-3)=="gif") || (substr($file,-3)=="jpg") || (substr($file,-3)=="JPG") )
{
// insert all images in array
$a_img[] = $file;
}
}
$totimg = count($a_img); // total images number
$totxpage = $col*$maxrow; // images x page
$totpages = ($totimg%$totxpage==0)?((int)$totimg/$totxpage):((int)($totimg/$totxpage)+1); // number of total pages

Vielen, vielen Dank und noch einen schönen Sonntagsabend
Seni

Verfasst: 23.08.2005 11:22
von seni
Ich hab`s gelöst. Mußte eine Variable ändern. Jedenfalls möchte ich mich bei dir bedanken für die Breitstellung des Scripts.
Danke
Seni