Programmteile auslagern (PHP)

Aus C++_PHP_und_mehr
Wechseln zu: Navigation, Suche

Links und Includepfade

Der Apache-Webserver sucht Pfade/Dateien aus der vom Browser übermittelten Adresse in einem ganz bestimmten Ordner[1], unter Linux ist dies /var/www/. Es ist zulässig, hier Links auf die physikalische Datei zu verwenden. Man muss dann aber die einen feinen Unterschied bei der Verwendung relativer Adressen beachten: Sobald man einen relativen Pfad mit .. (ein Ordner höher) verwendet, bezieht sich der Pfadname nur noch auf aufgerufenen Ordner, hier domainOrdner genannt.

  1. mit ..: require_once '../IncludeOrdner/IncludeDatei.inc.php';
    1. sourceOrdner/../IncludeOrdner/IncludeDatei.inc.php existiert physikalisch. Funktioniert nicht.
    2. Link var/www/domainOrdner/../IncludeOrdner/IncludeDatei.inc.php. Funktioniert.
  2. direkt: require_once 'IncludeOrdner/IncludeDatei.inc.php';
    1. Link var/www/domainOrdner/IncludeOrdner/IncludeDatei.inc.php. Funktioniert.
    2. Link sourceOrdner/IncludeOrdner/IncludeDatei.inc.php. Funktioniert.

Dies weicht von dem Verhalten von HTML-Ankern (<a>) ab. Relative Adressen werden immer relativ zum domainOrdner betrachtet, auch wenn der einen Link auf den eigentlichen Ordner enthält[2].

Fußnoten

  1. Einstellbar?
  2. Getestet für Apache Webserver