Php 简明教程
PHP - $_ENV
$_ENV 是 PHP 中的超级全局变量。它是一个关联数组,其中存储在当前脚本中可用的所有环境变量。 $HTTP_ENV_VARS 也包含相同的信息,但它不是超级全局变量,并且现在已弃用。
$_ENV is a superglobal variable in PHP. It is an associative array that stores all the environment variables available in the current script. $HTTP_ENV_VARS also contains the same information, but it is not a superglobal, and it has now been deprecated.
将环境变量导入到全局命名空间中。其中大多数变量是由 PHP 解析器正在运行之下的 shell 提供的。因此,不同平台上的环境变量列表可能不同。
The environment variables are imported into the global namespace. Most of these variables are provided by the shell under which the PHP parser is running. Hence, the list of environment variables may be different on different platforms.
如果 PHP 作为服务器模块或 CGI 处理器运行,这个数组 ($_ENV) 还包括 CGI 变量。
This array ($_ENV) also includes CGI variables in case PHP is running as a server module or a CGI processor.
我们可以使用 foreach 循环来显示所有可用的环境变量 −
We can use the foreach loop to display all the environment variables available −
<?php
foreach ($_ENV as $k=>$v)
echo $k . " => " . $v . "<br>";
?>
在 Windows 操作系统和 XAMPP 服务器上,您可能会获得以下环境变量列表 −
On a Windows OS and with XAMPP server, you may get the list of environment variables as follows −
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 |
Intel64 Family 6 Model 140 Stepping 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 环境变量 −
You can access the value of individual environment variable too. This code fetches the PATH environment variable −
<?php
echo "Path: " . $_ENV['Path'];
?>
它将生成以下 output −
It will produce the following 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" 值。
Note − The $_ENV array may yield empty result, depending on "php.ini" setting "variables_order". You may have to edit the "php.ini" file and set variables_order="EGPCS" instead of variables_order="GPCS" value.
The getenv() Function
PHP 库提供了 getEnv() 函数来检索所有环境变量或特定环境变量的值。
The PHP library provides the getenv() function to retrieve the list of all the environment variables or the value of a specific environment variable.
以下脚本显示所有可用环境变量的值 −
The following script displays the values of all the available environment variables −
<?php
$arr=getenv();
foreach ($arr as $key=>$val)
echo "$key=>$val";
?>
要获取特定变量的值,请使用其名称作为 getEnv() 函数的参数 −
To obtain the value of a specific variable, use its name as the argument for the getenv() function −
<?php
echo "Path: " . getenv("PATH");
?>
The putenv() Function
PHP 还提供了 putenv() 函数来创建新的环境变量。该环境变量只会存在于当前请求的持续时间内。
PHP also provides the putenv() function to create a new environment variable. The environment variable will only exist for the duration of the current request.
应避免更改某些环境变量的值。默认情况下,用户只能设置以“ PHP_ ”开头的环境变量(比如 PHP_FOO=BAR)。
Changing the value of certain environment variables should be avoided. By default, users will only be able to set the environment variables that begin with "PHP_" (e.g. PHP_FOO=BAR).
“php.ini”中的“safe_mode_protected_env_vars”指令包含一个环境变量逗号分隔列表,最终用户无法使用 putenv() 更改这些变量。
The "safe_mode_protected_env_vars" directive in "php.ini" contains a comma-delimited list of environment variables that the end user won’t be able to change using putenv().
<?php
putenv("PHP_TEMPUSER=GUEST");
echo "Temp user: " . getenv("PHP_TEMPUSER");
?>
浏览器将显示以下 output −
The browser will display the following output −
Temp user: GUEST