Neurodeamon
Erfahrenes Mitglied
Ich habe eine Funktion geschrieben, die von einem Startverzeichnis aus alle Unterordner in ein Array schreibt (schreiben soll).
Das Verzeichnis:
.
..
images [Ordner]
thumbs [Ordner]
index.php [Datei]
ignore.php [Datei]
Der Code:
Die Probleme kommen jetzt:
Wenn ich aus der Auflistung "." und ".." entfernen möchte.
Also im oberen PHP-Code diese Zeile ändere
Statt den Punkt zu entfernen entfernt verschwindet der Ordner "images" aus dem Array. Obwohl ich nur "." und ".." aus dem Array entferne (sowie alle NICHT-Ordner). Wird "images" immer Array[1] und nicht Array[0]. Das gleiche geschieht wenn ich in der While-Schleife $i explizit auf "0" setze und das ganze nicht automatisch beginnen lasse. Bei der Ausgabe kann ich den foreach-counter bei Array[1] beginnen lassen, was aber nicht das problem behebt ... sondern nur die sichtbare ausgabe.
Zum Test habe ich in die while-Schleife ein
gesetzt und die whileschleife arbeitet wie vorgesehen alle ordner ab. Deswegen habe ich die Vermutung das mit dem Code der den Array erstellt etwas nicht stimmt. Irgendwie hab ich aber ein brett vorm kopp *grr*
Theoretisch ist der Code ok, praktisch klappt es nicht.
Der Code wird auf einem Apache abgearbeitet.
Wär cool wenn jemand etwas sieht, das ich anscheinend übersehe ... *grummel*.
P.S.:
Bitte keine "vielleicht-liegt-es-daran"-Antworten.
Ich weiß das es auch andere Möglichkeiten gibt das Array mit den Ordnern zu erzeugen, auch das ist momentan unwichtig. Ich möchte dieses Problem hier verstehen.
P.P.S.:
Danke im Voraus.
Gruß,
Neuro
Das Verzeichnis:
.
..
images [Ordner]
thumbs [Ordner]
index.php [Datei]
ignore.php [Datei]
Der Code:
PHP:
<?
function dirlist($dirArray) {
global $dirArray;
$vardir=opendir(".");
while ($object = readdir($vardir))
{
if(is_dir("$object") && $object != "..")
{
$dirArray[$i] = "$object";
$i++;
}
clearstatcache ();
}
closedir($vardir);
return $dirArray;
}
?>
<?
dirlist($dirArray);
for ($c=1; $c<count($dirArray); $c++)
{
echo $dirArray[$c] . "<br>";
}
?>
Die Probleme kommen jetzt:
Wenn ich aus der Auflistung "." und ".." entfernen möchte.
Also im oberen PHP-Code diese Zeile ändere
PHP:
if(is_dir("$object") && $object != "." && $object != "..")
Zum Test habe ich in die while-Schleife ein
PHP:
echo "$object";
Theoretisch ist der Code ok, praktisch klappt es nicht.
Der Code wird auf einem Apache abgearbeitet.
Wär cool wenn jemand etwas sieht, das ich anscheinend übersehe ... *grummel*.
P.S.:
Bitte keine "vielleicht-liegt-es-daran"-Antworten.
Ich weiß das es auch andere Möglichkeiten gibt das Array mit den Ordnern zu erzeugen, auch das ist momentan unwichtig. Ich möchte dieses Problem hier verstehen.
P.P.S.:
Danke im Voraus.
Gruß,
Neuro