OOP mit PHP5 - Einstiegstutorial 1 - Die Navigation
1. Die Abschnitte
- Überlegungen
- Festlegen der Eigenschaften
- Einleiten der Startsequenz
- Die Navigation
- Durchlaufen der Ordner
- Erfassung der Dateien
- Zusammenfassung
2. doNavigate
Was nun folgt, ist eigentlich ziemlicher Pillepups. Wir öffnen das Startverzeichnis und lesen es aus. Anschließend wird das Ergebnis alphabetisch sortiert und weiter bearbeitet. Unsere Funktion sieht dann so aus:
class Dir
{
...
private function doNavigate ()
{
$sort = array ();
if ($handle = opendir ($this -> root))
{
while ($found = readdir ($handle))
{
if ($found != '.' && $found != '..')
{
$sort[] = $this -> root.'/'.$found;
}
}
closedir($handle);
if (sizeof ($sort) > 0)
{
natcasesort($sort);
}
}
}
}
Erläuterung
Ist, wie schon gesagt, ganz einfach. $sort = array ();
legt ein leeres Array an. Das ist notwendig, wenn
später die Verzeichnisse durchlaufen werden. Anschließend öffnen wir mit if ($handle = opendir ($this -> root))
den Startordner $this -> root
(falls lesbar) und lesen die Inhalte aus. Danach werden diese mit
natcasesort
alphabetisch absteigend sortiert und in $sort
geschrieben. Das könnt ihr mit einem
print_r($sort)
nach der while
-Schleife überprüfen.
Besonders wichtig ist dieser Abschnitt: $this -> root.'/'.$found;
. Damit hängen wir an den aktuellen Startordner
noch die nächste Dateiebene dran. Nur mit dieser Kombination könnt ihr später überprüfen, ob es sich dabei um Dateien oder
weitere Ordner handelt. if (sizeof ($sort) > 0)
überprüft nur, ob sich überhaupt etwas im ausgewählten Verzeichnis
befindet.
3. Ein Hinweis
Man könnte hier auch mit scandir
oder glob
arbeiten. Allerdings können diese beiden Funktionen auch nicht
komplett die Aufgabenstellung in einem Rutsch lösen, daher gehe ich hier den altbekannten Weg. Außerdem ist es dem Nutzer unserer
Klasse völlig lattens, wie wir das Problem lösen. Hauptsache das Ergebnis stimmt.
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt