【发布时间】:2019-10-10 08:14:37
【问题描述】:
我正在测试在 .htaccess 中设置环境变量以供我的 php 代码使用,并面临来自 getenv() 函数的奇怪行为。
在我的 .htaccess 中,我设置了
SetEnv BOP 23
在我的php中,我成功得到了
$res = getenv("BOP");
echo($res);
>>>> 23
但是当我尝试var_dump(getenv()); 或使用调试器查看getenv() 返回的数组中的内容时,我得到了一个长度为 23 的数组,但我的“BOP”变量丢失了。
例如,如果我尝试将 getenv() 转储到数组中并进行查找:
$array = getenv();
echo($array["BOP"])
我得到一个例外:
Exception has occurred.
Notice: Undefined index: BOP
从我在这里读到的关于getenv() https://www.php.net/manual/en/function.getenv.php
...如果省略
varname,则所有环境变量将作为关联数组返回。
那么我错过了什么?为什么我可以访问我的变量,但它不在 getenv() 中?
【问题讨论】:
-
你是如何运行脚本的?是通过浏览器还是通过 CLI?此外,如果通过浏览器,请检查您的 AllowOverride 指令以检查 .htaccess 允许的允许类型
-
通过浏览器。对于包含此 .htaccess 和其余代码的目录,AllowOverride 设置为 All。但是,如果不允许,
getenv("BOP")将如何返回任何东西?