一尘不染

从完整的网址获取域名

php

假设有人输入这样的网址:

http://i.imgur.com/a/b/c?query=value&query2=value

我想返回: imgur.com

i.imgur.com

这是我现在拥有的代码

$sourceUrl = parse_url($url);
$sourceUrl = $sourceUrl['host'];

但这又回来了 i.imgur.com


阅读 128

收藏
2020-05-29

共1个答案

一尘不染

检查下面的代码,它应该做的很好。

<?php

function get_domain($url)
{
  $pieces = parse_url($url);
  $domain = isset($pieces['host']) ? $pieces['host'] : $pieces['path'];
  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;
}

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

?>
2020-05-29