如果我们有
$url = "http://subdomain.domin.ext/somepath/file.php";
如何获取domain.ext
当我使用
时 $parse = parse_url($url);
$domin = $parse[host];
然后
echo "$domain"; //this returns subdomain.domin.ext
有没有想法获得domain.ext?
答案 0 :(得分:1)
$url = "http://subdomain.domin.ext/somepath/file.php";
$parse = parse_url($url);
$domain = $parse['host'];
$lastDot = strrpos($domain,'.');
$ext = substr($domain,$lastDot+1);
这会让你“分机”(例如“com”或“gov”)。在类似amazon.co.uk的情况下,它会给你“英国”。如果您需要“co.uk”,则需要添加逻辑来检测某些顶级域名(例如“英国”),并在这些案例中转到第二个点。
答案 1 :(得分:0)
<?php
$url = "http://subdomain.domain.ext/somepath/file.php";
$parse = parse_url($url);
$domain = substr(strrchr($parse['host'], '.'), 1);
$domain = substr(strrchr(substr($parse['host'], 0, -strlen($domain)), '.'), 1). '.'. $domain;
if(in_array(strstr($domain, '.', true), array('co', 'com', 'net', 'org', 'edu', 'gov', 'mil')))
{
$domain = substr(strrchr(substr($parse['host'], 0, -strlen($domain)), '.'), 1). '.'. $domain;
}
?>
答案 2 :(得分:0)
如果您的特定域名具有不同的TLD,例如mysite
.co.uk
和.com
,则基本上可以执行以下操作:
$url = 'http://mysite.co.uk/some-dir/';
$domain_pos = strpos($url, 'mysite');
$domain = substr($url, $domain_pos);
$ext_pos = strpos($domain, '/');
if($ext_pos !== false) { // extra check for paths/sub-dirs
$domain = substr($domain, 0, $ext_pos);
}
echo $domain;
返回mysite.co.uk
或分配给$url
的任何TLD。
请注意路径和子目录的额外检查。 :)