PHP从字符串中获取具有子域的域
Im使用以下函数从字符串中剪切域:PHP从字符串中获取具有子域的域,php,function,dns,preg-match,subdomain,Php,Function,Dns,Preg Match,Subdomain,Im使用以下函数从字符串中剪切域: 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
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;
}
函数获取域($url)
{
$pieces=parse_url($url);
$domain=isset($pieces['host'])?$pieces['host']:'';
if(preg_match('/(?P[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i',$domain,$regs)){
返回$regs['domain'];
}
返回false;
}
我需要剪切子域+域我应该如何更改preg_match
以获得它
PS我正在搜索解决方案,但每个人都希望只剪切域而不剪切子域。如果您无法计算regexp,一种更为程序化的方法可能是:
$pieces = parse_url($url);
$aDomains = explode('.', $pieces['host']);
$sub = array_shift($aDomains);
$restofdomain = implode($aDomains);
…如果你总是想要第一个域名(也就是说,它不适用于像“somedomain.com”这样的根域。对不起,我找到了解决方案,请不要禁止,然后你可以自由回答你的问题,甚至将答案标记为已接受。这是绝对合法的。这很有趣,但我发现的解决方案是不正确的,因为它不符合
www.
那么问题仍然是实际的。我没有完全得到你想要的,对我来说,parse\u url
提供了域名。请给出一些示例输入字符串和所需结果。如果域名是somedomain.co.im会怎么样