我需要检测真实的域名,没有子域名。
example.com
example.com.ua
sub.example.com.ua
sub.example.com
com.ua
- 第三级域名。
对于com.ua
域,我的结果必须为example.com.ua
,
对于其他人 - example.com
现在我的代码看起来像
$domain = parse_url($domain, PHP_URL_HOST);
$domain = implode('.', array_slice(explode('.', $domain), -2));
但它无法识别子域名和第三级域名。对于com.ua
域名,请返回com.ua
答案 0 :(得分:0)
我没有完全理解你在说什么,但我认为你想要检测当前域是否是子域。为此目的,请使用下面的代码
<?php
$sub ="sub";
$a=explode(".",$_SERVER['HTTP_HOST']);
$check = array_shift($a);
if($check==$sub)
{
echo "this is a subdomain"."<br>";
foreach($a as $test)
{
$main_domain.=$test;
}
echo "The main domain is:".$main_domain;
}
else
{
echo "This is not a sub domain";
}
?>
希望这有助于你
答案 1 :(得分:0)
尝试类似的东西,它将从示例
返回sub$url = 'http://sub.example.com.ua';
$parsedUrl = parse_url($url);
$host = explode('.', $parsedUrl['host']);
$subdomain = $host[0];
echo $subdomain;
答案 2 :(得分:-1)
function domain($domain)
{
$parts = explode('.', $domain);
$idz = count($parts);
$idz -= 3;
if(strlen($parts[($idz+2)]) == 2)
{
$domain = $parts[$idz].'.'.$parts[($idz+1)].'.'.$parts[($idz+2)];
}
else if(strlen($parts[($idz+2)]) == 0)
{
$domain = $parts[($idz)].'.'.$parts[($idz+1)];
}
else
{
$domain = $parts[($idz+1)].'.'.$parts[($idz+2)];
}
return $domain;
}
$domain = 'sub1.sub2.sub3.example.com.ua';
echo domain($domain);
返回:example.com.ua。 它是REAL域名。