get_current_user

(PHP 4, PHP 5, PHP 7, PHP 8)

get_current_user获取当前 PHP 脚本所有者的名称

描述

get_current_user(): string

返回当前 PHP 脚本所有者的名称。

参数

此函数没有参数。

返回值

返回用户名作为字符串。

示例

示例 #1 get_current_user() 示例

<?php
echo 'Current script owner: ' . get_current_user();
?>

上面的示例将输出类似于

Current script owner: SYSTEM

参见

添加笔记

用户贡献笔记 7 个笔记

justin samuel
18 年前
要获取进程所有者的用户名(而不是文件所有者),可以使用

<?php
$processUser
= posix_getpwuid(posix_geteuid());
print
$processUser['name'];
?>
south dot bucks at gmail dot com
11 年前
在 Centos(Red Hat Linux 的克隆版)上,此指令给出文件的 OWNER(指令 'chown' 中的第一个参数)。它不揭示文件的 GROUP。

get_current_user() 不会揭示当前进程用户的身份。

参见:posix_getuid() - 返回当前进程的实际用户 ID
s dot bond1 at lse dot ac dot uk
17 年前
get_current_user() 返回的信息似乎取决于平台。

在 Windows NT 上使用作为 CGI 与 IIS 5.0 一起运行的 PHP 5.1.1,get_current_user() 返回运行脚本的进程的所有者,而不是脚本本身的所有者。

测试起来很简单 - 创建一个包含以下内容的文件

<?php
echo get_current_user();
?>

然后通过浏览器访问它。我得到:IUSR_MACHINE,Windows 上的 Internet Guest Account,这肯定不是脚本的所有者。
chris at ocproducts dot com
4 年前
进一步测试 Windows 和 Linux 上的行为...

在 Linux 上,此函数确实返回脚本的所有者。如果您想知道 PHP 正在运行的用户名,可以使用 POSIX 函数(或带有 'whoami' 的 shell_exec)。

在 Windows 上,此函数返回 PHP 正在运行的用户名。对于 IIS(IUSR)和 Apache(SYSTEM - 来自 Apache 是 Windows 上的服务这一事实)都是如此。

Windows 上的行为实际上很有用,因为 POSIX 函数不可用。如果您需要在 Windows 上找到脚本的所有者,也许最好的方法是使用 shell_exec 来使用 dir /Q,并解析它。
nick at little-apps dot org
10 年前
由于这仅返回文件所有者,而不是实际运行脚本的用户,因此在 Linux 中的另一种方法是

<?php
$current_user
= trim(shell_exec('whoami'));
?>
login dot naitsirch at arcor dot de
9 年前
如果您想获取执行当前 PHP 脚本的用户名称,可以使用

<?php
$username
= getenv('USERNAME') ?: getenv('USER');
echo
$username; // 例如 root 或 www-data
?>
匿名
7 年前
如果您启用了 userdir,get_current_user() 将返回托管 public_html 的用户的用户名。例如,http://example.com/~bobevans/somescript.php 将在调用 get_current_user() 时返回 bobevans。
To Top