”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在 PHP 中从子域中提取根域名?

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

发布于2024-11-25
浏览:520

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() 的函数,该函数可以有效地提取根域名:

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

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

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

print get_domain("http://somedomain.co.uk"); // outputs 'somedomain.co.uk'

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

版本声明 本文转载于:1729555699如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3