Следующее даст вам пользователя, который запускает процесс PHP. Например, если вы используете Apache, он предоставит вам пользователя, которому принадлежит процесс Apache. Если вы запустите из командной строки, вы получите имя пользователя, вошедшего в систему лично.
Если вы запустите это через Apache (или любой веб-сервер), и этот веб-сервер работает как пользователь _www на вашем компьютере, и вы вошли в систему как пользователь zippy, то они вернут вы _www, а не быстро.
В Linux или MacOS:
$processUser = exec('whoami');
Or:
$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") дает вам "имя учетной записи пользователя". Я предполагаю, что в среде веб-сервера это даст вам имя пользователя, который запускает процесс Java или веб-сервер.
Я не совсем уверен, что они работают в Windows, если это то, что вы используете.
person
ryantxr
schedule
19.08.2017