php-正規表現のホスト名抽出
-
06-07-2019 - |
質問
「stackoverflow」部分だけを吐き出すwwwのない正規表現を探していました。または.comなど。URLが有効であるかどうかを確認するだけでした。PHPのURLフィルターを使用して、現在どのサイトであるかを確認しようとしています。
以前に式を書いたことがないので、誰かがそれを確認したり、より良い解決策を推奨したりできることを望んでいます。
preg_match('@^(?:http://)(?:www.)?([^.]+)@i', $url, $matches)
編集: 私が扱っているURLはすべて.comです。それが役立つ場合
解決
正規表現を使用しないワンライナー!!!
$url = 'http://stackoverflow.com';
$d = array_shift( explode( '.', str_replace('www.', '', parse_url( $url, PHP_URL_HOST )) ) );
echo $d;
他のヒント
PHPの parse_url()関数を検討しましたか?
所有しているものがURLであり、ドメインが.comで終わることがわかっている場合は、
preg_match('#([^\.]*)\.com#', $url, $matches);
トリックを行う必要があります。
これは www.com.foo.com
のようなドメインでは失敗しますが、状況によっては十分かもしれません。
preg_match('#https?://(?:www.)?(.*?)\.com#i', $str, $match);
所属していません StackOverflow