phpbar.de logo

Mailinglisten-Archive

[php] require und Unterverzeichnisse

[php] require und Unterverzeichnisse

lists at oliver-block.eu lists at oliver-block.eu
Mit Jun 3 14:18:45 CEST 2009


Tag allerseits,


immer wieder mal stehe ich Problemen bez. require/include gegenüber, wenn die Skripte nicht im gleichen Verzeichnis liegen, sondern in einem Unterverzeichnis des Arbeitsverzeichnisses. Er kürzlich gab es foldendes Problem:


Dateistruktur:
main.php
cliescript.php
db.php
admin/index.php
admin/inc1.php
admin/inc2.php


oder als Baumansicht:

+-- main.php
|
+-- cliscript.php

|
+-- db.php
|

+-- admin
          +-- index.php

          |
          +-- inc1.php
          |

         +-- inc2.php


Die Dateien admin/inc1.php und admin/inc2.php importieren die Datei '../db.php' und die Datei admin/index.php die Dateien '../db.php', 'admin/inc1.php' und 'admin/inc2.php'.


Wenn admin/index.php über  den Webserver (Apache) aufgerufen wurde, dann gab es keine Probleme mit den Pfaden. Als jedoch das cliscript.php hinzukam, das ebenfalls 'admin/inc1.php' und 'admin/inc2.php' einbindet, gabt es Probleme mit dem Zugriff auf '../db.php' aus inc1.php heraus. php hat die relative Pfadangaben nicht aufgelöst sondern einfach kopiert. Ich hätte erwartet, dass php die Datei db.inc im Verzeichnis admin/../db.php sucht, da das ausgeführte script clisript.php war. Gesucht wurde es aber im Verzeichnis ../db.inc (bezogen auf cliscript.php).



Hat irgendjemand eine Strategie im Umgang mit require / include entwickelt, oder sich mal tiefergehende Gedanken darüber gemacht. Ich würde ganz gerne das Problem in Zukunft umgehen, da die Lösung jedesmal lästig ist und Zeit kostet.


Gruss,


Oliver Block




php::bar PHP Wiki   -   Listenarchive