PHP でのサブドメインからのドメイン名の抽出
PHP では、サブドメインからルート ドメイン名を取得するのが一般的なタスクです。次のような変数が発生するシナリオを考えてみましょう:
here.example.com example.com example.org here.example.org
これらの値を、example.com や example.org などのルート ドメイン名に変換することを目的としています。これを実現するには、よく練られた関数が必要です。
ソリューション
次のスニペットは、ルート ドメイン名を効果的に抽出する get_domain() という関数を示しています。
function get_domain($url)
{
$pieces = parse_url($url);
$domain = isset($pieces['host']) ? $pieces['host'] : '';
if (preg_match('/(?P[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
return $regs['domain'];
}
return false;
}
この関数は、組み込みの parse_url() 関数を利用して URL を分解し、ホスト コンポーネントを取得します。その後、正規表現を使用してルート ドメイン名を検証および抽出し、一般的なドメイン命名規則に準拠していることを確認します。
目的の URL を指定して get_domain() を呼び出すことで、ルート ドメイン名を簡単に分離できます。 :
print get_domain("http://somedomain.co.uk"); // outputs 'somedomain.co.uk'
URL が許容可能なドメイン構造に準拠していない場合、関数は false を返すことでこれらのエッジ ケースを適切に処理します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3