Hauptmenü

Untermenü

OOP mit PHP5 - Einstiegstutorial 1 - Die Navigation

1. Die Abschnitte

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