下面将为您提供正在运行 PHP 进程的用户。例如,如果您正在运行 Apache,它将为您提供拥有 Apache 进程的用户。如果您从命令行运行,那么您将获得登录人的用户名。
如果您通过 Apache(或任何网络服务器)运行它并且该网络服务器在您的计算机上以用户_www运行并且您以用户zippy登录,那么这些将返回您_www,而不是zippy。
在 Linux 或 macOS 上:
$processUser = exec('whoami');
或者:
$userInfo = posix_getpwuid(posix_geteuid());
$processUser = $userInfo['name'];
您还可以尝试查看它是否可以通过环境使用。
$user = $_ENV['USERNAME'] ?? '-unknown';
我以下面的 Java 为例:
public class Main {
public static void main(String[] args) {
String username = System.getProperty("user.name");
System.out.println("username = " + username);
}
}
然后我使用了以下PHP:
<?php
echo `whoami`;
echo "\n";
然后我在命令行上运行并得到完全相同的输出。
在 macOS 和 Linux 上,这将为您提供当前登录的所有用户的列表:
<?php
$users = exec('/usr/bin/users', $output);
print_r($output);
根据这个 Oracle Java 文档System.getProperty("user.name") 给你“用户帐户名”。我假设在 Web 服务器环境中,这将为您提供运行 Java 或 Webserver 进程的用户的名称。
如果您正在使用这些,我不完全确定这些在 Windows 上是否有效。