以下將爲您提供正在運行PHP進程的用戶。例如,如果您正在運行Apache,它將爲您提供擁有Apache進程的用戶。如果您從命令行運行,那麼您將獲得登錄的用戶名。
如果你運行這個通過Apache(或任何Web服務器)和Web服務器正在運行的用戶_www您的計算機上,你登錄爲用戶比比,那麼這些將返回_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);
根據this Oracle Java doc System.getProperty(「user.name」)爲您提供了「用戶帳戶名」。我假設在一個Web服務器環境中,這會給你一個運行Java或Web服務器進程的用戶的名字。
我不完全確定這些工作在Windows上,如果這就是你正在使用的。
我可以通過「當前登錄的系統用戶名」來假設您是指Apache運行的用戶嗎? – ryantxr
@ryantxr沒有當前系統用戶這樣的人登錄到系統,如管理員ID。 –
你爲什麼想知道?如果沒有人登錄,或者有幾個人呢? –