首页  >  文章  >  后端开发  >  如何在 PHP 中从子域中提取根域?

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

Barbara Streisand
Barbara Streisand原创
2024-10-22 08:13:30170浏览

How to Extract Root Domain from Subdomains in PHP?

PHP:从子域中提取根域

使用域名时,通常需要将根域与子域分开。考虑一个包含各种域结构的变量:

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

我们的任务是创建一个函数,将所有这些变体转换为其相应的根域,例如“example.com”或“example.org”。方法如下:

使用正则表达式的解决方案

<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 分解为各个组成部分,包括域名。
  • 正则表达式使用捕获组 ((?P...))) 仅提取根域。
  • 该模式确保域名由以下部分组成:

    • 字母数字字符或连字符
    • 子域名的最大长度为 63 个字符
    • 2-6 个字符扩展名 (TLD),以点分隔

用法示例:

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

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

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