从任何PHP字符串获取域名

时间:2015-06-21 10:11:07

标签: php

我试图通过输入网址或域名本身来获取域名(即" 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;
}

但输入简单的&#34; domain.com&#34;

时失败了

我似乎无法解决这个问题。

2 个答案:

答案 0 :(得分:0)

如果您向&#39; domain.com&#39;询问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

答案 1 :(得分:0)

以下是工作代码:

$domainparse = parse_url($domainpost);    
$domainpath = $domainparse['path']; 

if ($domainpost == $domainpath) {
   $domain = $domainpost;
}else {
   $domain = get_domain($domainpost);
}    
$domain = str_replace("www.", "", $domain);

谢谢splash58!如果我及时看到它,我会使用你的代码

相关问题