Как найти папку, из которой был запущен скрипт командной строки PHP?
Допустим, у меня есть следующая структура папок на жестком диске:
/some/dir/
.
scripts/
myfile.php
Затем из '/ some / dir /' я запускаю следующую команду:
/some/dir/$ php scripts/myfile.php
Затем, в PHP, как я могу найти папку, из которой была запущена команда (то есть '/some/dir')?
Я пробовал с getcwd()
а также shell_exec('pwd')
но они оба возвращают только путь PHP-скрипта (т.е. /some/dir/scripts). есть идеи как это сделать?
1 ответ
Решение
Вы можете сослаться, например, на $_SERVER['PWD']
а также $_SERVER['OLDPWD']
Например, у меня есть скрипт test.php
в ./dev
подпапка с содержанием:
var_dump($_SERVER['PWD'], $_SERVER['OLDPWD']);
Итак, вы можете увидеть:
user @ host: / var / www / data $ php dev / test.php строка (13) "/var/www/data" строка (17) "/var/www/data/dev"
Итак, первое, что вы ищете.
Полное имя скрипта, как обычно, будет доступно в __FILE__
постоянная.