Читать домашний каталог пользователя из PHP - PullRequest
5 голосов
/ 01 февраля 2010

Я не могу найти способ получить домашний каталог пользователя (например, / home / jack ; все, на что указывает ~ в bash) в PHP с использованием CGI (suPHP). Массив $ _ENV пуст, а getenv ('HOME') ничего не возвращает.

Причина, по которой я хочу сделать это, заключается в том, что в отсутствие конфигурации, говорящей иначе, я хочу найти переменные файлы, используемые моим приложением, в / home / user / .myappnamehere , как это делает большинство приложений Linux.


Я что-то построил, но это не самое лучшее; Хотя он работает, он многое предполагает о системе (например, наличие / etc / passwd)

 $usr = get_current_user();
    $passwd = file('/etc/passwd');
    $var = false;
    foreach ($passwd as $line) {
        if (strstr($line, $usr) !== false) {
            $parts = explode(':', $line);
            $var = realpath($parts[5].'/.report');
            break;
        }
    }

Ответы [ 2 ]

6 голосов
/ 01 февраля 2010

Я думаю, вы хотите получить результат либо: http://us.php.net/manual/en/function.getmyuid.php или http://us.php.net/manual/en/function.posix-getuid.php отправлено http://us.php.net/manual/en/function.posix-getpwuid.php

4 голосов
/ 01 февраля 2010

Если safemode отключен, попробуйте этот

$homedir = `cd ~ && pwd`;
...