php include, Ordnertiefe
bearbeitet von Rolf BHallo mathefritz,
[set_include_path(...)](http://php.net/manual/de/function.set-include-path.php) liefert Dir nicht zurück, was es eingestellt hat, sondern was vorher eingestellt WAR - vermutlich deshalb, damit Du den alten Include-Path bei Bedarf restaurieren kannst, ohne vorher get_include_path() aufgerufen zu haben.
Es ist übrigens deutlich besser, `$_SERVER['DOCUMENT_ROOT'] . '/Zentrale/KomandoZentrale'` statt den absoluten Pfad an set_include_path zu übergeben. Wenn Du den absoluten Pfad einträgst und lima-city auf einmal meint, die Webs nicht mehr unter /home/webpages/lima-city, sondern unter /webs/reseller/lima-city zu hosten (oder sonst was), dann fällst Du auf die Nase. DOCUMENT_ROOT bleibt dagegen unverändert die Wurzel Deines Übels - äh - deines Webs.
Übrigens ist es so, dass set_include_path in der Form, wie Du es aufrufst, ein weiteres Problem bergen KANN: existierende include_path Einstellungen werden überschrieben. Das ist in deinem Fall kein Problem, weil der alte Wert "." ist (=aktuelles Verzeichnis), und [dort sucht PHP sowieso nach includes](http://php.net/manual/de/function.include.php). Aber im Allgemeinen sollte man den Include-Path nicht ersetzen, sondern erweitern. Das kannst Du das so tun:
~~~php
set_include_path(get_include_path() .
PATH_SEPARATOR .
$_SERVER['DOCUMENT_ROOT'] . '/Zentrale/KomandoZentrale');
~~~
PATH_SEPARATOR zu verwenden ist wichtig, weil das betriebssystemabhängig ist (';' unter Windows und ':' unter Linux).
_Rolf_
--
Dosen sind silbern