phpbar.de logo

Mailinglisten-Archive

[php] include im selben Verzeichnis eines included files

[php] include im selben Verzeichnis eines included files

Sebastian Mendel lists at sebastianmendel.de
Mit Apr 25 16:55:01 CEST 2007


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