ホームページ > バックエンド開発 > PHPチュートリアル > PHP でサブドメインからルートドメイン名を抽出するにはどうすればよいですか?

PHP でサブドメインからルートドメイン名を抽出するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-22 08:10:30
オリジナル
512 人が閲覧しました

How to Extract Root Domain Names from Subdomains in PHP?

PHP でのサブドメインからのドメイン名の抽出

PHP では、サブドメインからルート ドメイン名を取得するのが一般的なタスクです。次のような変数が発生するシナリオを考えてみましょう:

here.example.com
example.com
example.org
here.example.org
ログイン後にコピー

これらの値を、example.com や example.org などのルート ドメイン名に変換することを目的としています。これを実現するには、よく練られた関数が必要です。

解決策

次のスニペットは、ルート ドメイン名を効果的に抽出する get_domain() という関数を示しています。

<code class="php">function get_domain($url)
{
  $pieces = parse_url($url);
  $domain = isset($pieces['host']) ? $pieces['host'] : '';
  if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
    return $regs['domain'];
  }
  return false;
}</code>
ログイン後にコピー

この関数は、組み込みの parse_url() 関数を利用して URL を分解し、ホスト コンポーネントを取得します。その後、正規表現を使用してルート ドメイン名を検証および抽出し、一般的なドメイン命名規則に準拠していることを確認します。

目的の URL を指定して get_domain() を呼び出すことで、ルート ドメイン名を簡単に分離できます。 :

<code class="php">print get_domain("http://somedomain.co.uk"); // outputs 'somedomain.co.uk'</code>
ログイン後にコピー

URL が許容可能なドメイン構造に準拠していない場合、関数は false を返すことでこれらのエッジ ケースを適切に処理します。

以上がPHP でサブドメインからルートドメイン名を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート