首页 >后端开发 >php教程 >如何在 PHP 中从子域中提取根域名?

如何在 PHP 中从子域中提取根域名?

Linda Hamilton
Linda Hamilton原创
2024-10-22 08:10:30508浏览

How to Extract Root Domain Names from Subdomains in PHP?

在 PHP 中从子域中提取域名

在 PHP 中,从子域中获取根域名是一项常见任务。考虑这样一个场景,您遇到如下变量:

here.example.com
example.com
example.org
here.example.org

您的目标是将这些值转换为其根域名,例如 example.com 或 example.org。为此,需要一个精心设计的函数。

解决方案

以下代码片段演示了一个名为 get_domain() 的函数,该函数可以有效地提取根域名:

<code class="php">function get_domain($url)
{
  $pieces = parse_url($url);
  $domain = isset($pieces['host']) ? $pieces['host'] : '';
  if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
    return $regs['domain'];
  }
  return false;
}</code>

该函数利用内置的 parse_url() 函数来分解 URL 并检索主机组件。随后,它使用正则表达式来验证和提取根域名,确保其遵守常见的域名命名约定。

通过使用所需的 URL 调用 get_domain(),您可以轻松隔离根域名:

<code class="php">print get_domain("http://somedomain.co.uk"); // outputs 'somedomain.co.uk'</code>

如果 URL 不符合可接受的域结构,该函数会通过返回 false 来优雅地处理这些边缘情况。

以上是如何在 PHP 中从子域中提取根域名?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn