【问题标题】:Are few of the server variables been added and few have been removed in PHP 7?在 PHP 7 中是否添加了一些服务器变量而删除了很少的服务器变量?
【发布时间】:2017-05-24 17:49:37
【问题描述】:

我正在从 w3schools 的 PHP 教程学习 PHP。我正在使用 PHP 7.0.13

在学习的过程中,我遇到了全局变量 - 超全局的概念。

This is the page from where I'm learning Global Variables - Superglobals

注意:请到以上链接查看服务器变量列表。

在此页面上,我尝试了所有服务器变量,但我收到 Notice 作为 Undefined index 以下几个服务器变量:

  1. $_SERVER['HTTP_ACCEPT_CHARSET']
  2. $_SERVER['HTTPS']
  3. $_SERVER['REMOTE_HOST']
  4. $_SERVER['SCRIPT_URI']

对于上述每个变量,我都尝试了以下代码。例如:

<!DOCTYPE html>
<html>
  <body>
    <pre>
    <?php
      echo $_SERVER['PATH_TRANSLATED'];//like this I tried for other three server variables also
    ?>
    </pre>
  </body>
</html>

除此之外,当我尝试执行代码 print_r($_SERVER); 时,我还观察到数组 $_SERVRER 中有几个新的服务器变量

那么,我的问题是 PHP5 中存在的一些旧服务器变量在 PHP7 中已被删除,而新添加的其他变量很少?

我也尝试查看 PHP 文档,但我也对此一无所知。

所以,请有人澄清我的疑问。

谢谢。

【问题讨论】:

  • 存在哪些值几乎完全取决于 web 服务器,它将它们传递给 PHP(是的,这就是它们在 $_SERVER 超全局中的原因)。那么……你在哪个网络服务器上运行它?
  • @deceze :我正在使用 Apache/2.4.23 (Win32)

标签: php superglobals server-variables


【解决方案1】:

$_SERVER的内容主要由web服务器创建,如documented here

$_SERVER 是一个包含诸如标题、路径、 和脚本位置。 此数组中的条目由网络创建 服务器。无法保证每个 Web 服务器都会提供任何 其中;服务器可能会省略一些,或提供此处未列出的其他内容。 也就是说,大量的这些变量都在 » CGI/1.1 规范,所以你应该可以期待这些。

所以 PHP 在这里几乎没有什么可做的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多