代码之家  ›  专栏  ›  技术社区  ›  user7941334

如何在PHP中从请求URI中读取主机名?

  •  0
  • user7941334  · 技术社区  · 7 年前

    对于路由器,我想在服务器请求时从URI中获取主机名。我知道我需要从 $_SERVER 变量但似乎在 $\u服务器 数组主机名有多个条目(至少两个)。

    你能告诉我,我应该选择哪一个值——最可靠的值吗?

    例如,当我有这样一个URI时:

    http://local.mvc/mycontroller/myaction
    

    这个 $\u服务器 阵列将具有:

    [HTTP_HOST] => local.mvc
    [SERVER_NAME] => local.mvc
    

    我需要获得价值 local.mvc .

    谢谢你抽出时间。

    3 回复  |  直到 7 年前
        1
  •  0
  •   Marcin Orlowski    7 年前

    SERVER_NAME 是在其配置中分配给给定服务器的名称(即。 apache.conf 文件及其 ServerName 指令或类似文件),而 HTTP_HOST 值是从 headers of HTTP request 它来自客户端(通常是web浏览器)。这两个 可以 如果您的服务器服务于多个域(如共享服务器/虚拟服务器托管),则会有所不同。但是,根据用例的不同,您可能希望使用其中一种 HTTP_主机 似乎是更好的选择,因为它总是告诉用户想要达到什么。

        2
  •  0
  •   SmartCoder    7 年前

    这个 $_SERVER 变量具有 'REQUEST_URI' .

    只是 var_dump documentation )

        3
  •  0
  •   Mazarovici Marian    7 年前

    如果您使用的是PHP5或PHP7,请尝试 php_uname

    要获取主机名:

    php_uname("n");