如何在 PHP Cli on linux 中找到用户主目录的路径?

How to find path of user's home directory in PHP Cli on 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")中做什么才能returns /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

您可以使用您已经写过的 whomai 找到当前用户名。使用该名称在 /etc/passwd 中查找与该用户对应的行。从那行 cut 出来的主目录信息:

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

PHPCLI 版本将环境变量放在 $_SERVER[] 中。当前用户的主目录可以在 $_SERVER['HOME'] 中找到。无需更改任何目录或 运行 任何外部命令。

在 OSX 和 Ubuntu 上进行了测试,但我相信它适用于任何 Linux 发行版。目前无法透露有关 Windows 的任何信息。