Mailinglisten-Archive |
Ringo Großer schrieb: > Hallo Liste, > > ich suche eine Möglichkeit, dass ein include sich auf den selben Pfad > bezieht wie die Datei in welcher es ausgeführt wird, unabhängig davon > wie der relative Pfad davor aussieht, welcher die ausgeführte Datei > einbindet. > Also ein Beispiel: > > foo.php > foo2.php > test/somescript.php > > somescript.php > <?php > include '../foo.php'; > ?> > > foo.php > <?php > include 'foo2.php'; > ?> > > Das include in foo.php schlägt fehl, wenn ich somescript.php ausführe, > weil dann im Ordner test/ nach der foo2.php geschaut wird, was ich aber > nicht will. Ich will, dass das include im selben Ordner wie foo.php > durchgeführt wird, egal von woher ich die foo.php eingebunden habe. Ideen? relative Pfadangaben sind immer vom aktuellen Pfad abhängig (logisch ;-) ), welche der Pfad des aufgerufenen (nicht des eingebunden) Scripts ist du musst also den aktuellen Pfad wechseln in foo.php mittels chdir() z. B.: chdir('..'); oder chdir(dirname(__FILE__)); sowas würde ich aber umgehen! weil das für mehr Verwirrung und Probleme sorgen kann als es Nutzen bringt. Dateien sollten immer entweder includiert oder direkt aufgerufen werden, nicht beides! dementsprechend sollten incldue-Dateien immer unterhalb eines definierten include-Pfades sein - somit bei jeder Konstellation mit dem gleichen Pfad includierbar sein. du kannst natürlich nachdem inlcude auch wieder zum alten Pfad wechseln. -- Sebastian Mendel www.sebastianmendel.de
php::bar PHP Wiki - Listenarchive