【问题标题】:Get only domain name [duplicate]只获取域名[重复]
【发布时间】:2022-01-07 18:09:46
【问题描述】:

我只想要没有子域和路径 URL 的域名。

例子:

在浏览器中加载 URL:https://www.example.com/something。我只想要example.com

我尝试了echo $_SERVER['HTTP_HOST'];echo $_SERVER['SERVER_NAME'];,但输出为www.example.com,但它希望example.com 作为输出。

用什么?

【问题讨论】:

  • 这在获取确切域名的步骤方面并不简单。检查stackoverflow.com/a/14210490/4964822
  • preg_replace('/^www\./','',$_SERVER['HTTP_HOST']) ?
  • @DirkJ.Faber 您的代码有效,但它仅适用于www,而不适用于所有subdomain.example.com,并且每次我都必须进行编辑。我并不懒惰在代码中编辑子域,但有数百个子域。我们如何从anything.example.com中只选择域名
  • @DirkJ.Faber 我认为是 SERVER_NAME 而不是 HTTP_POST 因为如果不是 80 或 443 端口,HTTP_POST 会将端口添加到 url
  • 你可以做 preg_replace('/^[^.]*\.(?=\w+\.\w+$)/','',$_SERVER['SERVER_NAME'])跨度>

标签: javascript php html server-name http-host


【解决方案1】:

我会检查“www”的存在。在字符串的开头,如果字符串以“www”开头。我会删除它。

例子:

$domain = substr($_SERVER['SERVER_NAME'],0,4) === 'www.' ? substr($_SERVER['SERVER_NAME'],4) : $_SERVER['SERVER_NAME'];
echo $domain;

【讨论】:

  • 您的代码有效,但它只适用于www,而不适用于所有subdomain.example.com,而且每次我必须编辑时。我并不懒惰在代码中编辑子域,但是有数百个子域。我们如何从anything.example.com中只选择域名
  • 啊好吧 - 试试看这里的答案:stackoverflow.com/questions/2679618/…。它做你想做的事,只返回没有子域的主域。
猜你喜欢
  • 2011-07-21
  • 1970-01-01
  • 2017-12-14
  • 2013-05-04
  • 2014-05-31
  • 1970-01-01
  • 1970-01-01
  • 2012-10-14
  • 2016-06-30
相关资源
最近更新 更多