无法显示$ _ENV值

时间:2014-04-16 13:05:22

标签: php html-table environment-variables

我使用Putty。我想让$_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>";

2 个答案:

答案 0 :(得分:0)

这是因为您的$_ENV为空,只需在getenv("REMOTE_ADDR");之前添加while,然后看到它神奇地工作。

我建议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>

答案 1 :(得分:0)

要使getenv()正常工作,php配置参数variables_order必须包含&#39; E&#39;。如果没有,则必须为您可能想要拥有的每个值调用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。它非常快,更容易阅读并且不受光标的影响,因此您无需首先重置()就可以更加防错。

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