如何获得域的唯一后缀部分?

时间:2013-08-24 08:41:37

标签: php regex arrays

请考虑以下域名后缀列表:

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','有机'?

我需要涵盖上面列表中提到的所有域后缀。单个正则表达式有可能吗?或任何其他好的解决方案将有所帮助?感谢

2 个答案:

答案 0 :(得分: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]: '';

答案 1 :(得分:0)

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

$name = 'www.birdslisten.org';
$array = explode(".", $name);
end($array);
$suffix = current($array);
echo $suffix;