PHP $ _ENV

介绍

$_ENV是PHP中的另一个超全局关联数组。它存储当前脚本可用的环境变量。$HTTP_ENV_VARS也包含相同的信息,但不是超全局信息,现已弃用。

环境变量被导入全局命名空间。这些变量大多数由运行PHP解析器的shell提供。因此,环境变量的列表在不同平台上可能会有所不同。

如果PHP是作为服务器模块还是CGI处理器运行,则此数组还包含CGI变量。

PHP库具有getenv()函数来检索所有环境变量的列表或特定环境变量的值

盖滕

以下脚本显示所有可用环境变量的值

<?php
$arr=getenv();
foreach ($arr as $key=>$val)
echo "$key=>$val
";
?>

为了获得特定变量的值,使用其名作为参数的getenv()函数

示例

<?php
echo "Path: " . getenv("PATH");
?>

输出结果

浏览器将显示类似于以下内容的结果

Path: /usr/local/bin/factor:/root/.sdkman/candidates/kotlin/current/bin:/usr/GNUstep/System/Tools:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/scriba/bin:/usr/local/smlnj/bin:/usr/local/bin/std:/usr/local/bin/extra:/usr/local/fantom/bin:/usr/local/dart/bin:/usr/libexec/sdcc:/usr/local/icon-v950/bin:/usr/local/mozart/bin:/opt/Pawn/bin:/opt/pash/Source/PashConsole/bin/Debug/:.:/root/.sdkman/candidates/kotlin/current/bin:/usr/bin:/sbin:/bin

PHP还具有 putenv()函数来创建新的环境变量。环境变量仅在当前请求期间存在。

应避免更改某些环境变量的值。默认情况下,用户将只能设置以PHP_开头的环境变量(例如PHP_FOO = BAR)。

php.ini中的safe_mode_protected_env_vars指令包含以逗号分隔的环境变量列表,最终用户将无法使用进行更改putenv()

Putenv

示例

<?php
putenv("PHP_TEMPUSER=GUEST");
echo "Temp user: " . getenv("PHP_TEMPUSER");
?>

输出结果

浏览器将显示如下结果

Temp user: GUEST