php - get $_SERVER["DOCUMENT_ROOT"] without using superglobals -


i'm running php script command line, superglobals not defined. how can $_server["document_root"] without using superglobal $_server?

superglobals such $_server haven't been set yet (because apache/nginx/etc) sets these values. you're running command line, there no apache/nginx/etc set them, resulting in them becoming null.

there 2 alternatives can use.

using __dir__

you can use magic constant __dir__ output directory of current file.

php -r "echo __dir__;" /var/www/html 

this give different results depending on run from. i.e: /var/www/html/lib/foo return differently if ran /var/www/html/views/index. - not you're looking for.

setting own constant

within bootstrap file (as mentioned in comment), can set own constant used throughout application.

define('__document_root__', __dir__); 

now within page run (as long uses bootstrap file), can call __document_root__ constant value would mirror $_server["document_root"]. though require use relative paths include bootstrap file.


Comments

Popular posts from this blog

How has firefox/gecko HTML+CSS rendering changed in version 38? -

javascript - Complex json ng-repeat -

jquery - Cloning of rows and columns from the old table into the new with colSpan and rowSpan -