如何在 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');
PHP
的 CLI
版本将环境变量放在 $_SERVER[]
中。当前用户的主目录可以在 $_SERVER['HOME']
中找到。无需更改任何目录或 运行 任何外部命令。
在 OSX 和 Ubuntu 上进行了测试,但我相信它适用于任何 Linux 发行版。目前无法透露有关 Windows 的任何信息。
我正在尝试通过 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');
PHP
的 CLI
版本将环境变量放在 $_SERVER[]
中。当前用户的主目录可以在 $_SERVER['HOME']
中找到。无需更改任何目录或 运行 任何外部命令。
在 OSX 和 Ubuntu 上进行了测试,但我相信它适用于任何 Linux 发行版。目前无法透露有关 Windows 的任何信息。