Pfff... wat bedoel je nu te zeggen Aar? Ik geef zelf toch al aan dat $_SERVER['DOCUMENT_ROOT'] niet altijd op Windows IIS staat ingevuld? En dan ga je mij vervolgens weer naar $_SERVER verwijzen? Ik test het met Apache en ik zie alleen $_SERVER['DOCUMENT_ROOT'] staan die relevante informatie geeft, dus ik heb geen idee waar je nu op doelt.
Bij IIS kan je het halen uit een van die indexes die begint met SCRIPT_ als ik het me goed herinner. Maar of dat garandeert dat het in het www gedeelte van de server zit… Wat bedoel je er precies mee? Dat het in dat deel zit dat de server als statische content zou serveren als het niet als dynamische content was aangemerkt? (dat is de reden waarom je PHP scripts niet in je document root wilt hebben: als Apache om een of andere reden PHP niet laadt, kan iedereen je PHP bestanden downloaden)
TL;DR: wat is het achterliggende probleem wat je wilt oplossen; waar heb je dit voor nodig?
@Aar: je moet niet zomaar ergens vanuit gaan... en zeker niet als ik aangeef dat het met de $_SERVER variabele niet lukt ;) Die getenv schijnt ook niet overal te werken...
@Jelmer:
Ik wil een soort installatie scriptje maken. Ik wil dat de webmaster via dit script een directory kan selecteren in het afgeschermde (niet www) deel van de server. Ik wil echter niet dat er www mappen kunnen worden geselecteerd.
Voorbeeld van een server directory structuur:
A
B
C
D
WWW/E/install.php
/F
/G
Als je in het bovengenoemd voorbeeld install.php oproept dan wil ik de directories tonen die zich in het beveiligde deel bevinden. Dus in dit geval directory A, B, C en D. De directories WWW, WWW/E, WWW/F en WWW/G mogen niet getoond worden.
Ik denk niet dat je dat waterdicht kan doen zonder de configuratie van de server in te lezen. En ik denk ook niet dat je dat waterdicht kan maken.
Ik denk dat je het beste kan kijken naar DOCUMENT_ROOT en andere environment variabelen die datzelfde betekenen, en eventueel naar het pad in de URL en het pad van het script dat op dat moment wordt aangroepen, en dat deel wat ze met elkaar gemeen hebben is binnen de document root. Maar waterdicht is het niet.
@Aar: je moet niet zomaar ergens vanuit gaan... en zeker niet als ik aangeef dat het met de $_SERVER variabele niet lukt ;) Die getenv schijnt ook niet overal te werken...
Maar veel moeite is het ook weer niet om te vertellen je normaliter op Apache bezig bent. ;-)