【问题标题】:Can't display $_ENV Values无法显示 $_ENV 值
【发布时间】:2014-04-16 13:05:22
【问题描述】:

我正在使用腻子。我试图让$_ENV打印到一张桌子上。我似乎对 $_SERVER 显示没问题,但我尝试使用 $_ENV 的所有内容都不会显示。我的代码是:

<HTML><HEAD><TITLE>$_ENV</TITLE></HEAD>
<BODY>
<TABLE border="1">
<TR><TD><b>Keys</b><TD><b>Values</b>
<?php
while (list ($key, $value) = each($_ENV)) {
  print ("<TR><TD>$key<TD>$value\n");
}
?>
</TABLE>
</BODY></HTML>

getenv("REMOTE_ADDR")print_r($_ENV) 只会给我远程地址。我想要所有键及其变量。对于$_SERVER,我的代码为我提供了已提交表单中的所有键。

<?php
//If form not submitted, display form.
if (isset($_POST['submit']))
    {

    $msg = $_POST["msg"];
    $name = $_POST["name"];
    $posts = file_get_contents("posts.txt");
    $posts = "$msg - $name\n" . $posts;
    file_put_contents("posts.txt", $posts);
    echo $posts;

    print"<table border=1>";
         echo "<th>Keys</th> <th>My SERVER Info</th>";
 foreach ($_SERVER as $key=>$val )
         {
         echo "<tr><td>".$key."</td><td>" .$val."</tr>";
         }
    print"</table>";

【问题讨论】:

  • 为什么不在循环前做print_r($_ENV); 看看里面有什么。

标签: php html-table environment-variables


【解决方案1】:

那是因为你的$_ENV 是空的,只需在你的while 之前添加getenv("REMOTE_ADDR"); 就可以看到它神奇地工作了。

我建议以getenv("REMOTE_ADDR"); 为例...

像这样..

<HTML><HEAD><TITLE>$_ENV</TITLE></HEAD>
<BODY>
<TABLE border="1">
    <TR><TD><b>Keys</b><TD><b>Values</b>
            <?php
            getenv("REMOTE_ADDR"); //<--- Add here
            while (list ($key, $value) = each($_ENV)) {
                print ("<TR><TD>$key<TD>$value\n");
            }
            ?>
</TABLE>
</BODY></HTML>

【讨论】:

  • 但我想要所有 ENV 变量,而不仅仅是 REMOTE_ADDR
【解决方案2】:

要使getenv() 工作,php 配置参数variables_order 必须包含'E'。如果没有,您必须为您可能想要的每个值调用 getenv()。这样做也会将它添加到 $_ENV 数组中。

或者,您可以解析phpinfo() 结果。要使其仅返回环境信息,您可以使用:

phpinfo(INFO_ENVIRONMENT);
//Or also, as INFO_ENVIRONMENT is just a constant with the value 16
phpinfo(16);

另外,我真的建议您使用foreach 而不是while-list-each。它真的更快,更容易阅读并且不受光标的影响,因此您无需先 reset() 就可以更防错。

foreach($array as $key=>$value){
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-29
    • 2017-12-14
    • 2016-08-25
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 2015-05-16
    • 2018-06-17
    相关资源
    最近更新 更多