Heim  >  Artikel  >  Backend-Entwicklung  >  正则获取各类URL的一级域名代码是不是可行

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

WBOY
WBOYOriginal
2016-06-13 12:48:541391Durchsuche

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

本帖最后由 changjay 于 2010-09-07 23:25:30 编辑 有许多网址, 类似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。
希望正则高手帮我修改一下,变成一个万能的一级域名正则代码。
 
<br />
$url = $row["url"];<br />
preg_match("#[\w-]+\.(com|net|org|gov|cc|biz|info|cn|co)(\.(cn|hk|uk))*#", $url, $match);<br />
echo $match[0];<br />



------解决方案--------------------
$s = <<< TEXT<br />
abc.abc.com<br />
abc.com/abc<br />
www.abc.com.cn<br />
abc.com.tw<br />
www.abc.co.uk<br />
www.abc.com.jp/abc.php/id=abc<br />
www.cool.com<br />
TEXT;<br />
<br />
foreach(split("[\r\n]+", $s) as $url) {<br />
  preg_match("#[\w-]+\.(com<br><font color='#FF8000'>------解决方案--------------------</font><br>net<br><font color='#FF8000'>------解决方案--------------------</font><br>org<br><font color='#FF8000'>------解决方案--------------------</font><br>gov<br><font color='#FF8000'>------解决方案--------------------</font><br>cc<br><font color='#FF8000'>------解决方案--------------------</font><br>biz<br><font color='#FF8000'>------解决方案--------------------</font><br>info<br><font color='#FF8000'>------解决方案--------------------</font><br>cn<br><font color='#FF8000'>------解决方案--------------------</font><br>co)\b(\.(cn<br><font color='#FF8000'>------解决方案--------------------</font><br>hk<br><font color='#FF8000'>------解决方案--------------------</font><br>uk<br><font color='#FF8000'>------解决方案--------------------</font><br>jp<br><font color='#FF8000'>------解决方案--------------------</font><br>tw))*#", $url, $match);<br />
  echo "<p>$url <br />" . $match[0];<br />
}<br />

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
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn