一尘不染

PHP从子域获取域名

php

我需要编写一个函数来解析包含域名的变量。最好用一个示例来说明,变量可以包含以下任何内容:

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

但是当通过我的函数传递时,所有这些都必须返回example.com或example.co.uk,基本上是根域名。我敢肯定我之前已经做过,但是我已经搜索Google约20分钟了,找不到任何东西。任何帮助,将不胜感激。

编辑:忽略.co.uk,假定通过此功能的所有域都具有3个字母的TLD。


阅读 211

收藏
2020-05-26

共1个答案

一尘不染


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

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;
}
2020-05-26