Php 简明教程
PHP - $_ENV
$_ENV 是 PHP 中的超级全局变量。它是一个关联数组,其中存储在当前脚本中可用的所有环境变量。 $HTTP_ENV_VARS 也包含相同的信息,但它不是超级全局变量,并且现在已弃用。
将环境变量导入到全局命名空间中。其中大多数变量是由 PHP 解析器正在运行之下的 shell 提供的。因此,不同平台上的环境变量列表可能不同。
如果 PHP 作为服务器模块或 CGI 处理器运行,这个数组 ($_ENV) 还包括 CGI 变量。
我们可以使用 foreach 循环来显示所有可用的环境变量 −
<?php
foreach ($_ENV as $k=>$v)
echo $k . " => " . $v . "<br>";
?>
在 Windows 操作系统和 XAMPP 服务器上,您可能会获得以下环境变量列表 −
Variable |
Value |
ALLUSERSPROFILE |
C:\ProgramData |
APPDATA |
C:\Users\user\AppData\Roaming |
CommonProgramFiles |
C:\Program Files\Common Files |
CommonProgramFiles(x86) |
C:\Program Files (x86)\Common Files |
CommonProgramW6432 |
C:\Program Files\Common Files |
COMPUTERNAME |
GNVBGL3 |
ComSpec |
C:\WINDOWS\system32\cmd.exe |
DriverData |
C:\Windows\System32\Drivers\DriverData |
HOMEDRIVE |
C − |
HOMEPATH |
\Users\user |
LOCALAPPDATA |
C:\Users\user\AppData\Local |
LOGONSERVER |
\\GNVBGL3 |
MOZ_PLUGIN_PATH |
C:\Program Files (x86)\ Foxit Software\ Foxit PDF Reader\plugins\ |
NUMBER_OF_PROCESSORS |
8 |
OneDrive |
C:\Users\user\OneDrive |
OneDriveConsumer |
C:\Users\user\OneDrive |
OS |
Windows_NT |
Path |
C:\Python311\Scripts\;C:\Python311\;C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\ v1.0\;C:\Windows\System32\OpenSSH\;C:\xampp\php;C:\Users\user\AppData\Local\Microsoft\WindowsApps;C:\VSCode\Microsoft VS Code\bin |
PATHEXT |
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE; .WSF;.WSH;.MSC;.PY;.PYW |
PROCESSOR_ARCHITECTURE |
AMD64 |
PROCESSOR_IDENTIFIER |
英特尔64家族6型号140步进1,GenuineIntel |
PROCESSOR_LEVEL |
6 |
PROCESSOR_REVISION |
8c01 |
ProgramData |
C:\ProgramData |
ProgramFiles |
C:\Program Files |
ProgramFiles(x86) |
C:\Program Files (x86) |
ProgramW6432 |
C:\Program Files |
PSModulePath |
C:\Program Files\WindowsPowerShell\Modules; C:\WINDOWS\system32\WindowsPowerShell\v1.0\ Modules |
PUBLIC |
C:\Users\Public |
SystemDrive |
C − |
SystemRoot |
C:\WINDOWS |
TEMP |
C:\Users\user\AppData\Local\Temp |
TMP |
C:\Users\user\AppData\Local\Temp |
USERDOMAIN |
GNVBGL3 |
USERDOMAIN_ROAMINGPROFILE |
GNVBGL3 |
USERNAME |
user |
USERPROFILE |
C:\Users\user |
windir |
C:\WINDOWS |
ZES_ENABLE_SYSMAN |
1 |
__COMPAT_LAYER |
RunAsAdmin Installer |
AP_PARENT_PID |
10608 |
你也可以访问各个环境变量的值。此代码获取 PATH 环境变量 −
<?php
echo "Path: " . $_ENV['Path'];
?>
它将生成以下 output −
Path:
C:\Python311\Scripts\;C:\Python311\;C:\WINDOWS\system32;
C:\WINDOWS;C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\WINDOWS\System32\OpenSSH\;C:\xampp\php;
C:\Users\mlath\AppData\Local\Microsoft\WindowsApps;
C:\VSCode\Microsoft VS Code\bin
Note − $_ENV 数组可能会产生空的结果,具体取决于“php.ini”设置“variables_order”。你可能需要编辑“php.ini”文件并设置 variables_order="EGPCS" 而不是 variables_order="GPCS" 值。
The getenv() Function
PHP 库提供了 getEnv() 函数来检索所有环境变量或特定环境变量的值。
以下脚本显示所有可用环境变量的值 −
<?php
$arr=getenv();
foreach ($arr as $key=>$val)
echo "$key=>$val";
?>
要获取特定变量的值,请使用其名称作为 getEnv() 函数的参数 −
<?php
echo "Path: " . getenv("PATH");
?>
The putenv() Function
PHP 还提供了 putenv() 函数来创建新的环境变量。该环境变量只会存在于当前请求的持续时间内。
应避免更改某些环境变量的值。默认情况下,用户只能设置以“ PHP_ ”开头的环境变量(比如 PHP_FOO=BAR)。
“php.ini”中的“safe_mode_protected_env_vars”指令包含一个环境变量逗号分隔列表,最终用户无法使用 putenv() 更改这些变量。
<?php
putenv("PHP_TEMPUSER=GUEST");
echo "Temp user: " . getenv("PHP_TEMPUSER");
?>
浏览器将显示以下 output −
Temp user: GUEST