Verzeichnis einlesen und auf Unterordner prüfen

Hallo Zusammen,

ich stehe momentan etwas auf dem Schlauch. Ich würde gerne ein kleines Script schreiben, dass ein Verzeichnis einliest, die eingelesenen Ordner als DropDown auflistet und dann den Inhalt des gewählten Ordners darstellt. Soweit auch kein Problem. Ich bekomme es nur nicht hin zu prüfen ob der Ordner ggfs. einen Unterordner enthält und dann ein neues DropDown erzeugt wird. Das Script sieht bis jetzt wie folgt aus.:

<?php //---------------------------------------Ordner Einlesen-------------------------------------------------------------
$verzeichnis = "."; echo "";
echo "Bitte den Ordner waehlen:
";
echo "";

// Text, ob ein Verzeichnis angegeben wurde
if ( is_dir ( $verzeichnis ))
{
// öffnen des Verzeichnisses
if ( $handle = opendir($verzeichnis) )
{
// einlesen der Verzeichnisses
while (($file = readdir($handle)) !== false)
{
if ($file == "." OR $file == ".." OR $file == "..." OR $file == "index.php") {

}else {
echo "".$file."";
}
}
closedir($handle);
}

}

echo "";
echo "";
echo "";

//---------------------------------------Dateien Auflisten-------------------------------------------------------------

$auswahl = $_POST['directory'];
$directory = $auswahl;

if ($auswahl == "") {
echo "Bitte eine Auswahl treffen";
} else {
if ( $handle2 = opendir($directory) )
{

echo "Sie befinden Sich in: ".$auswahl."

";

// einlesen der Verzeichnisses
while (($file = readdir($handle2)) !== false)
{
if ($file !== "." OR $file !== ".." OR $file !== "...") {
echo "";
echo "
";

}
}
closedir($handle2);
}

}
?>

Kann mir vielleicht jemand helfen oder den entscheidenden Tipp geben?

So… mittlerweile bin ich zu dem folgenden gekommen:

index.php - Einlesen der Verzeichnis und erstellen des DropDowns

<?php //---------------------------------------Ordner Einlesen-------------------------------------------------------------
$verzeichnis = "."; echo "";
echo "Bitte den Ordner waehlen:
";
echo "";

// Text, ob ein Verzeichnis angegeben wurde
if ( is_dir ( $verzeichnis ))
{
// ffnen des Verzeichnisses
if ( $handle = opendir($verzeichnis) )
{
// einlesen der Verzeichnisses
while (($file = readdir($handle)) !== false)
{
if ($file != "." && $file != ".." && $file != "..." && $file != "index.php" && $file != "show.php") {
echo "".$file."";
} }
closedir($handle);
}

}

echo "";
echo "";
echo "";

?>

show.php - Auflisten des Inhalts und Erstellung eines weiteren DropDowns falls Unterordner enthalten sind

<?php //--------------------------------------Prüfen ob Unterodner enthalten sind--------------------------------------------

$auswahl = $_POST['directory'];
$directory = $auswahl;

$handle = opendir($directory);
$file = readdir ($handle);

if (is_dir ($file) ) {
echo " ";
echo "Bitte den Ordner waehlen:
";
echo "";
if ( $handle = opendir($directory) ) {
// einlesen der Verzeichnisses
while (($file = readdir($handle)) !== false) {
if ($file != "." && $file != ".." && $file != "..." && $file != "index.php" && $file != "show.php") {
echo "".$file."";
}
}
}
echo "";
echo "";
echo "";

closedir($handle);
} else {
//---------------------------------------Inhalt auflisten---------------------------------------------------------------
if ( $handle = opendir($directory) ) {

echo "Sie befinden Sich in: ".$auswahl."

";

// einlesen der Verzeichnisses
while (($file = readdir($handle)) !== false)
{
if ($file != "." && $file != ".." && $file != "...") {
echo "";
echo "
";
}
}
closedir($handle);
}
}
?>


Leider funktioniert es nicht. Ich bekomme allen Inhalt (Ob Ordner oder File) in das DropDown. Was mache ich denn falsch??? Bitte um hilfe :wink:

Dir hilft bestimmt is_dir().

is_dir() > Überprüft, ob es ein Ordner ist, oder nur eine Datei.

lg

ich frage ja mit is_dir ab… das ist es ja was mich wundert. Aber schon mal danke für den Hinweiß. Kannst Du Dir das Script vielleicht mal ansehen? Vielleicht fällt Dir ja auf was ich falsch mache. Hab es in meinem zweiten Post etwas verändert.

Ja aber nur beim ausgewählten Verzeichnis ganz oben:

<?php //---------------------------------------Ordner Einlesen-------------------------------------------------------------<br />
$verzeichnis = ".";
echo "
";
echo "Bitte den Ordner waehlen:
";
echo "";

// Text, ob ein Verzeichnis angegeben wurde
if ( is_dir ( $verzeichnis ))
{
// ffnen des Verzeichnisses
if ( $handle = opendir($verzeichnis) )
{
// einlesen der Verzeichnisses
while (($file = readdir($handle)) !== false)
{
if ($file != "." && $file != ".." && $file != "..." && $file != "index.php" && $file != "show.php") {
echo "".$file."";
} }
closedir($handle);
}

}

echo "";
echo "";
echo "";

?>

show.php - Auflisten des Inhalts und Erstellung eines weiteren DropDowns falls Unterordner enthalten sind

<?php //--------------------------------------Prüfen ob Unterodner enthalten sind--------------------------------------------

$auswahl = $_POST['directory'];
$directory = $auswahl;

$handle = opendir($directory);
$file = readdir ($handle);

if (is_dir ($file) ) {
echo " ";
echo "Bitte den Ordner waehlen:
";
echo "";
if ( $handle = opendir($directory) ) {
// einlesen der Verzeichnisses
while (($file = readdir($handle)) !== false) {
//hier prüfen ob is_dir()
if ($file != "." && $file != ".." && $file != "..." && $file != "index.php" && $file != "show.php") {
echo "".$file."";
}
}
}
echo "";
echo "";
echo "";

closedir($handle);
} else {
//---------------------------------------Inhalt auflisten---------------------------------------------------------------
if ( $handle = opendir($directory) ) {

echo "Sie befinden Sich in: ".$auswahl."

";

// einlesen der Verzeichnisses
while (($file = readdir($handle)) !== false)
{

if ($file != "." && $file != ".." && $file != "...") {
echo "";
echo "
";
}
}
closedir($handle);
}
}
?>


lg Sebastian

Gelöst: Verzeichnis einlesen und auf Unterordner
Vielen Dank für den Tipp :wink: Klar kann er erst Prüfen ob ein Unterordner enthalten ist wenn der Inhalt auch eingelesen ist. Manchmal sieht man einfach den Wald vor lauter Bäumen nicht. Vielen Dank nochmals :wink:

Bitte gern.

Normalerweise löst man diese Thematik mittels Rekursion.
Also rekursives Ordner auslesen.

Hier ein Spitzenbeispiel:
http://codingforums.com/showthread.php?p=873415

lg Sebastian