ホームページ  >  記事  >  バックエンド開発  >  通常の方法を使用して、さまざまな URL の第 1 レベルのドメイン名コードを取得することは可能ですか?

通常の方法を使用して、さまざまな URL の第 1 レベルのドメイン名コードを取得することは可能ですか?

WBOY
WBOYオリジナル
2016-06-13 12:48:541391ブラウズ

通常の方法を使用して、さまざまな URL の第 1 レベルのドメイン名コードを取得することは可能ですか?

この投稿は changjay によって最後に編集されました: 2010-09-07 23:25:30 URLは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 正規表現を使用してすべての URL の第 1 レベルのドメイン名を取得するにはどうすればよいですか?得られる結果は、abc.com、abc.com.cn、abc.co.uk? です。

状況はさらに複雑です。以下のコードを使用していますが、おおよその判断はできますが、ドメイン名に com、net、org、gov、cc、biz、info、cn、co が含まれる場合、通常の結果に問題が発生します。
たとえば、www.cool.com は www.co に正規化されます。
正規表現の専門家がこれを修正して、ユニバーサルな第 1 レベルのドメイン名の正規表現コードに変えるのを手伝ってくれることを願っています。

<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
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。