从任何 php 字符串中获取域


Get domain from any php string

我试图通过输入网址或域本身(即"domain.com")来获取域

我试过使用

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;
}

但是当简单地输入"domain.com"时会失败

我似乎想不通。

如果你用"domain.com"询问parse_url,它会将其作为文件名返回

 $pieces = parse_url($url); // 'path' => domain.com

更新

您可以使用此类正则表达式来获取域

^(https{0,1}:'/'/|)([^'/]+)('/*.+|)$

它从下面的所有行中获取 example.com

http://example.com/dd.dfgjhdfg
https://example.com/dd.dfgjhdfg
http://example.com/
http://example.com
example.com/
example.com

这是工作代码:

$domainparse = parse_url($domainpost);    
$domainpath = $domainparse['path']; 
if ($domainpost == $domainpath) {
   $domain = $domainpost;
}else {
   $domain = get_domain($domainpost);
}    
$domain = str_replace("www.", "", $domain);

谢谢飞溅58!如果我及时看到你的代码,我会使用你的代码