Как найти папку, из которой был запущен скрипт командной строки 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__ постоянная.

Другие вопросы по тегам