Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

get current directory of symlink'd php script and not actual php script

I have a script that is symlinked from one folder to another

/var/www/default/index.php

which is symlinked to

/var/www/mysite/index.php

However when i call DIR from mysite the path resolves to the origial path under default. How do i make it return the mysite path (the symlinked folder, not the actual folder)

like image 853
Darian Brown Avatar asked May 10 '12 00:05

Darian Brown


2 Answers

For Web Server requests

dirname($_SERVER['SCRIPT_FILENAME']) will give you what you need.

Failing that $_SERVER['PHP_SELF'] or even REQUEST_URI may have what you need, depending on your server configuration.

For CLI (command Line)

this won't work in cli (command line) scripts as $_SERVER is added by the web server.

Fortunately it's a lot easier with cli scripts (as there is no web server to mess about with things).

All you need is to read the command line that started the script: http://php.net/manual/en/reserved.variables.argv.php. The first argument $argv[0] is always the name that was used to run the script.

like image 59
Robbie Avatar answered Oct 19 '22 05:10

Robbie


If you want to get the current path with symlink you can ask your host OS:

$path = exec('pwd');

like image 29
igaster Avatar answered Oct 19 '22 04:10

igaster