0

请考虑以下域后缀列表:

COM .CO .INFO .NET .ORG .US .CA .MOBI .BIZ .ME .CC .NAME .TV .WS .DE .AM .FM .BZ .COM.BZ .NET.BZ .ES .ASIA .SE .XXX

我需要从上面的域列表中提取唯一的后缀部分。例如,如果我有 'www.google.com'、'www.backforgood.us'、'www.birdslisten.org' 等,我需要的唯一部分是 'com'、'us'、'组织'?

我需要涵盖上面列表中提到的所有域后缀。是否可以使用单个正则表达式?或者任何其他好的解决方案会有所帮助?谢谢

4

2 回答 2

2

您可以使用以下代码获取.co.in.co.uk后缀。

例子

$host = 'http://www.google.co.in';
//$host = 'http://www.google.co.uk';
preg_match('/(.*?)((\.co)?.[a-z]{2,4})$/i', $host, $m);
echo $ext = isset($m[2]) ? $m[2]: '';

代码经过测试.co.in并且.co.uk

而且.com.biz你需要稍微改变正则表达式。

$host = 'http://www.google.com.biz';
preg_match('/(.*?)((\.co[a-zA-Z])?.[a-z]{2,4})$/i', $host, $m);
echo $ext = isset($m[2]) ? $m[2]: '';
于 2013-08-24T09:24:58.783 回答
0

如果你想要域的最后一部分,你可以使用这样的东西

$name = 'www.birdslisten.org';
$array = explode(".", $name);
end($array);
$suffix = current($array);
echo $suffix;
于 2013-08-24T08:47:41.790 回答