我试图通过输入网址或域本身(即"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!如果我及时看到你的代码,我会使用你的代码