Installationsordner dynamisch erkennen

dtdesign

Mitglied
Hallo,

ich entwickel zur Zeit ein sehr umfangreiches Script, dass auf seinen Installationsordner dynamisch reagiert. Dies bedeutet, dass das Script sich in seiner Funktionsweise irritieren lassen soll, ob es nun in http://webseite/abc/ oder in http://webseite/abc/def/ liegt. Dies zu erkennen ist notwendig, da ich auf Grund der Arbeitsweise an einigen Stellen mit Absicht dazu gezwungen bin, absolute Pfadangaben zu nutzen, etwa innerhalb der Template Engine (z.B.: Verweis auf CSS Definitionen). Das eigentliche Script kennt seine feste Ordnerstruktur und ist daher logischerweise unabhängig, wo es liegt, jedoch sollen Pfadänderungen (wozu auch immer diese gemacht werden, Cool URIs don't change ;) ) das Script nicht beeinträchtigen.

Ich hoffe, ich habe mein Problem ausreichend erläutert, sollten Rückfragen bestehen, erkläre ich es gerne differenzierter. Nun zu meiner Fragestellung:

Wie lässt sich der Pfad explizit herausfiltern, etwa bei http://webseite/abc/def/ -> '/abc/def/', wobei es keine Rolle spielt ob die Slashes nun da sind oder nicht, dass kann ich am Ende immernoch berücksichtigen bzw. entsprechend anpassen?

Ich bedanke mich bereits für jede Hilfe ;)

Mit freundlichen Grüßen
Alex aka. dtdesign
 
Mit $_SERVER['SCRIPT_FILENAME'] kann man rausfinden in welchem Verzeichniss das ausführende Script liegt..

Evtl. hilf das ja weiter..

MFG
 
Danke für den Hinweis, ich werde mal Versuchen mittel $_SERVER['SCRIPT_FILENAME'] und $_SERVER['DOCUMMENT_ROOT'] zu basteln.

Wenn ich erfolg habe, schreib ich die Lösung hier nieder.

Edit: Folgender Code führte zum Erfolg:

PHP:
<?php
			$temp_path	= $_SERVER['SCRIPT_FILENAME'];
			$temp_path	= str_replace($_SERVER['DOCUMENT_ROOT'], '', $temp_path);
			$last_slash	= strrpos($temp_path, '/');
			$root_path	= substr($temp_path, 0, $last_slash);
?>

Gruß
dtdesign
 
Zuletzt bearbeitet:
Falls der Document-Root-Wert doppelt vorkommt, kann es zu Fehlern kommen. Deshalb mein Vorschlag:
PHP:
basename(substr($_SERVER['SCRIPT_FILENAME'], 0, strlen($_SERVER['DOCUMENT_ROOT'])))
 
Zurück