Prüfen ob Variable ein Verzeichnis ist, funktioniert nicht?
NetLook
- php
Hallo!
Habe folgenden Code, der 2 Verzeichnisse durchlaufen und auslesen soll:
Code:
$Dr = array();
$Dr[0]="../dir1/dir2/";
$Dr[1]="../dir3/dir4/";
$art=3;
if($art==3)
{
foreach($Dr as $Verz)
{
echo $Verz."<br>";
echo $i++."<br>";
//prüft ob Verzeichnis existiert
if (is_dir($Verz))
{
//öffnet Verzeichnis
if ($ordner = opendir($Verz))
{
//Solange noch Dateien im Verzeichnsi existieren
while (($dateien = readdir($ordner)) !==false)
{
//und die Datei nicht "." oder ".. "heist
if ($dateien != "." && $dateien != "..")
{
if(is_dir($dateien))
{
echo "dann hier: ".$dateien."<br>";
}
//Wird jede Datei oder Ordner in ein Array gepackt
echo "datei: ".$dateien."<br>";
$files[] = $dateien;
}
}
}
//Verzeichnis wird geschlossen
closedir($ordner);
}
}
//Array, also die Dateien werden alphabetisch von A nach Z sortiert
natcasesort($files);
}
An der If Abfrage ob $dateien ein Verzeichnis ist passiert aber nichts, obwohl bei dem 2ten Pfad es sich um Verzeichnisse handelt?!
Gruß
NetLook
Hallo,
1.) Du prüfst in Deinem Script zweimal mittels is_dir(). Welche der Beiden if-Anweisungen meist Du also?
2.) Ist Eine Verzeichnisstruktur nicht näher beschrieben, alsdaß man Dein Problem hätte nachvollziehen könnte.
Gruß aus Berlin!
eddi
Hallihallo!
Hallo!
Habe folgenden Code, der 2 Verzeichnisse durchlaufen und auslesen soll:
[...] //und die Datei nicht "." oder ".. "heist
if ($dateien != "." && $dateien != "..")
{
if(is_dir($dateien))
{
echo "dann hier: ".$dateien."<br>";
}[...]
> An der If Abfrage ob $dateien ein Verzeichnis ist passiert aber nichts, obwohl bei dem 2ten Pfad es sich um Verzeichnisse handelt?!
Über dieses Problem bin ich gestern auch erst gestolpert, und die Erklärung ist eigentlich logisch:
Angenommen, $Verz ist "D:/verzeichnis", und das gefundene Unterverzeichnis ($dateien="unterverzeichnis") liegt demnach in "D:/verzeichnis/unterverzeichnis".
Dein Skript sucht aber nach einem "unterverzeichnis" statt nach einem "D:/verzeichnis/unterverzeichnis".
(Ich hoffe, das Beispiel war verständlich)
Des Rätsels Lösung ist also:
Ändere die Abfrage
~~~php
if (is_dir($dateien))
in
if (is_dir($Verz."/".$dateien))
und schon findet die If- Abfrage das Verzeichnis.
Ich hoffe, ich konnte Dir damit helfen.
Viele liebe Grüße,
Der Dicki