正则获取各类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 />
Nach dem Login kopieren
------解决方案--------------------$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 />
Nach dem Login kopieren
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
Erklärung dieser Website
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