get_current_user()
(PHP 4, PHP 5, PHP 7)
获取当前 PHP 脚本所有者名称
说明
get_current_user(void): string
返回当前 PHP 脚本所有者名称。
返回值
以字符串返回用户名。
范例
Example #1get_current_user()例子
<?php echo 'Current script owner: ' . get_current_user(); ?>
以上例程的输出类似于:
Current script owner: SYSTEM
参见
getmyuid()
获取 PHP 脚本所有者的 UIDgetmygid()
获取当前 PHP 脚本拥有者的 GIDgetmypid()
获取 PHP 进程的 IDgetmyinode()
获取当前脚本的索引节点(inode)getlastmod()
获取页面最后修改的时间
to get the username of the process owner (rather than the file owner), you can use: <?php $processUser = posix_getpwuid(posix_geteuid()); print $processUser['name']; ?>
On Centos, the Red Hat linux clone, this instruction gives the file's OWNER (the first parameter in instruction 'chown'). It does not reveal the file's GROUP. get_current_user() does NOT reveal the current process' user's identity. See: posix_getuid() - Return the real user ID of the current process
The information returned by get_current_user() seems to depend on the platform. Using PHP 5.1.1 running as CGI with IIS 5.0 on Windows NT, get_current_user() returns the owner of the process running the script, *not* the owner of the script itself. It's easy to test - create a file containing: <?php echo get_current_user(); ?> Then access it through the browser. I get: IUSR_MACHINE, the Internet Guest Account on Windows, which is certainly not the owner of the script.
If you have userdir enabled, get_current_user() returns the username of the user hosting the public_html. For example, http://example.com/~bobevans/somescript.php will return bobevans when calling get_current_user().
Since this only returns the file owner and not the actual user running the script, an alternative in Linux is: <?php $current_user = trim(shell_exec('whoami')); ?>
If you want to get the name of the user who executes the current PHP script, you can use <?php $username = getenv('USERNAME') ?: getenv('USER'); echo $username; // e.g. root or www-data ?>