Hauptverzeichnis mit Unterverzeichnisse

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
seni
Mitglied
Beiträge: 3
Registriert: 21.08.2005 17:01

Hauptverzeichnis mit Unterverzeichnisse

Beitrag 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
Benutzeravatar
kratzer54847
Mitglied
Beiträge: 3065
Registriert: 20.01.2003 16:34
Wohnort: Düsseldorf/Hannover/Berlin
Kontaktdaten:

Beitrag 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
Knowledge Base | MOD Datenbank | Boardsuche | HTML | PHP

Durch die richtige Verwendung dieser Links können viele Fragen beantwortet werden ;-)
seni
Mitglied
Beiträge: 3
Registriert: 21.08.2005 17:01

Beitrag 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
seni
Mitglied
Beiträge: 3
Registriert: 21.08.2005 17:01

Beitrag 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
Antworten

Zurück zu „Coding & Technik“