Ich entwickle und vertreibe verschiedene PHP-Anwendungen in verschiedenen Umgebungen. Besonders in Entwicklungsumgebungen können sie überall sein, von document_root bis/Users/me/Sites/oder sogar/Users/me/Sites/someapp/PHP: Wie bekomme ich den Document Root aus einem Benutzerverzeichnis?
In diesen Anwendungen muss ich wissen, wo der 'Anwendungsstamm' ist, einmal als echter Pfad und einmal als URL. Pfad ist kein Problem. Lassen Sie uns sagen, dass ich eine bootstrap.php im App-Stammverzeichnis haben, das tut:
define("BASE_DIR", realpath(dirname(__FILE__)));
Allerdings habe ich Probleme haben, um zuverlässig die Basis-URL zu bekommen. Auf den meisten Umgebungen einfach Dokumentstamm von BASE_DIR Subtrahieren funktioniert:
define("BASE_URL", str_replace($_SERVER['DOCUMENT_ROOT'],'',BASE_DIR) . "/");
Nun, mein Problem ist: Das funktioniert nicht auf Umgebungen, in denen mein app in meinem Benutzerverzeichnis liegt, weil PHP sieht nach wie vor das Hauptdokument Wurzel. Hat jemand dieses Problem gelöst?
möglich duplicate of [Wie finde ich die Basis-URL einer Anwendung?] (http://stackoverflow.com/questions/176712/ how-can-i-find-an-applications-base-url) – alexn
Danke, aber ich habe gerade die Lösung dort ausprobiert und das Ergebnis hängt davon ab, wo sich die Datei einschließlich des angegebenen Codes befindet. – Stefan
Oder besser gesagt: Die Lösung erfordert, dass sich die bootstrap.php immer im Root-Verzeichnis befindet (obwohl ich der Einfachheit halber das Gegenteil gesagt habe, hatte ich es in einem "includes /" -Verzeichnis). Aber ich denke, die einfachste Lösung besteht darin, sie nach oben zu verschieben und die hier verknüpfte Lösung zu verwenden. – Stefan