Как найти путь к домашнему каталогу пользователя в PHP Cli на Linux?

Я пытаюсь написать скрипт для проверки выхода из определенного каталога или нет в текущем, вошедшем в домашний каталог пользователя через PHP.

когда на терминале я использую

    cd ~
pwd

Это показывает /home/ramratan,

Но когда я попробовал через PHP то же самое, что и ниже

    chdir("~");
PHP Warning:  chdir(): No such file or directory (errno 2)
in php shell code on line 1
PHP Stack trace:
PHP   1. {main}() php shell code:0
PHP   2. chdir() php shell code:1

Я тоже попробовал ниже

 chdir("/home");
echo shell_exec("pwd");

Отображает /home не /home/ramratan, если кто-то поможет мне, что я должен делать в chdir("/home") так что это возвращает /home/ramratan,

Я также попробовал ниже, но безуспешно

 chdir("/home/".shell_exec("whoami"));
PHP Warning:  chdir(): No such file or directory (errno 2)
in php shell code on line 1
PHP Stack trace:
PHP   1. {main}() php shell code:0
PHP   2. chdir() php shell code:1

1

Решение

Вы можете найти текущее имя пользователя, используя whomai как вы уже написали. Используйте это имя, чтобы найти строку, соответствующую этому пользователю в /etc/passwd, С этой линии cut из дома, каталог информация:

$currentUserHomeDir = exec('grep `whoami` /etc/passwd | cut -d ":" -f6');
0

Другие решения

CLI версия PHP помещает переменные среды в $_SERVER[], Домашний каталог текущего пользователя можно найти в $_SERVER['HOME'], Нет необходимости менять какой-либо каталог или запускать какие-либо внешние команды.

Протестировал его на OSX и Ubuntu, но я уверен, что он работает на любом дистрибутиве Linux. Пока ничего не могу рассказать о Windows.

1

По вопросам рекламы [email protected]