PHP 不会回显环境变量,尽管它们出现在 var_dump 中

问题描述 投票:0回答:1

我有一个运行 Apache2(虚拟主机)+ PHP 8.2 的 Debian 12 服务器。

我正在努力让 PHP 读取环境变量,并正在使用此代码进行测试:

<?php
   $scriptUrl = $_ENV['SCRIPT_NAME'];
   echo "$scriptUrl";
?>

奇怪的是,页面上没有打印任何内容。

我已经尝试过使用其他几个环境变量,例如

SCRIPT_URL
。我也尝试过使用
getenv('SCRIPT_URL')
功能,但没有成功。

我运行了

var_dump($_SERVER);
,它返回了大量变量,包括
SCRIPT_NAME
,这是正确的,但是我尝试的 PHP 似乎无法访问任何变量。

我想这与我的 Apache / 虚拟主机 / PHP 配置有关。

php apache debian
1个回答
0
投票
  1. 为什么期望将

    SCRIPT_NAME
    设置为环境变量?您通常会在
    $_SERVER
    超全局中发现这一点,而不是在
    $_ENV
    中。
    $scriptUrl = $_SERVER['SCRIPT_NAME'];
    应该会给你预期的结果。

  2. 并非所有环境变量都必须填充到超全局变量中。与

    var_dump($_ENV)
    相比,
    var_dump(getenv());
    可能会显示不同(或没有)结果。有关详细信息,请参阅变量顺序

  3. 要查看可用的内容,请尝试:

var_dump($_ENV);

var_dump(getenv());

var_dump($_SERVER);
© www.soinside.com 2019 - 2024. All rights reserved.