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 サイトの他の関連記事を参照してください。