Home >Backend Development >PHP Tutorial >正则获取各类URL的一级域名代码是否可行?

正则获取各类URL的一级域名代码是否可行?

WBOY
WBOYOriginal
2016-06-23 14:05:531599browse

有许多网址, 类似abc.abc.com ,abc.com/abc ,www.abc.com.cn , abc.com.tw ,www.abc.co.uk ,www.abc.com.jp/abc.php/id=abc(id=abc后面还可以跟很长)
还有很多种情况,我希望可以是万能的。

如何用PHP正则获取所有网址的一级域名?获得结果为 abc.com,abc.com.cn, abc.co.uk?

情况比较复杂。我用下面的代码,大致可以判断,但是当域名里有com,net,org,gov,cc,biz,info,cn,co时,正则出的结果就有问题了。
比如www.cool.com,被正则成了www.co。
希望正则高手帮我修改一下,变成一个万能的一级域名正则代码。
 

$url = $row["url"];preg_match("#[\w-]+\.(com|net|org|gov|cc|biz|info|cn|co)(\.(cn|hk|uk))*#", $url, $match);echo $match[0];



回复讨论(解决方案)

$s = <<< TEXTabc.abc.comabc.com/abcwww.abc.com.cnabc.com.twwww.abc.co.ukwww.abc.com.jp/abc.php/id=abcwww.cool.comTEXT;foreach(split("[\r\n]+", $s) as $url) {  preg_match("#[\w-]+\.(com|net|org|gov|cc|biz|info|cn|co)\b(\.(cn|hk|uk|jp|tw))*#", $url, $match);  echo "<p>$url <br />" . $match[0];}

abc.abc.com 
abc.com

abc.com/abc 
abc.com

www.abc.com.cn 
abc.com.cn

abc.com.tw 
abc.com.tw

www.abc.co.uk 
abc.co.uk

www.abc.com.jp/abc.php/id=abc 
abc.com.jp

www.cool.com 
cool.com

楼上正解

代码是万能的,版主也是万能的。
欢呼~~

www.net.cn 万网域名,这个解析出来就不对,类似的 www.com.cn,当然是很特殊的个例

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn