PHP を使用した任意の URL からのドメイン名の抽出
PHP では、ドメイン名を URL から取得する必要があるさまざまなシナリオに遭遇します。指定された URL。この要件を満たすために、さまざまな形式の URL を処理する包括的なソリューションを次に示します。
正規表現メソッド
次の正規表現を使用してドメイン名を抽出できます。任意の URL から:
<code class="php">$regex = '/^(http|https):\/\/[a-z0-9]*\.[a-z0-9.]+/i';</code>
この正規表現は、サブドメインを含むすべての URL に一致し、ドメイン名を取得します。
URL の解析メソッド
または、parse_url() 関数を使用して URL からホストを抽出することもできます。ホストにはドメイン名とサブドメインが含まれています。
<code class="php">$info = parse_url($url); $host = $info['host'];</code>
ドメインと TLD の分離
ドメイン名 (サブドメインなし) と先頭のみを抽出するには-レベル ドメイン (TLD) の場合は、次のコードを使用できます。
<code class="php">$host_names = explode(".", $host); $bottom_host_name = $host_names[count($host_names)-2] . "." . $host_names[count($host_names)-1];</code>
このコードは、ホストをコンポーネント部分に分割し、ドメイン名と TLD を抽出します。
例使用法
これらのメソッドの使用法を示すために、次のコードを検討します。
<code class="php">$url = 'https://www.example.com/foo/bar'; // Using regular expression preg_match($regex, $url, $matches); $domain_name = $matches[0]; // Using parse_url and explode $info = parse_url($url); $host = $info['host']; $host_names = explode(".", $host); $bottom_host_name = $host_names[count($host_names)-2] . "." . $host_names[count($host_names)-1]; echo "Domain name (regex): " . $domain_name . "<br>"; echo "Domain name and TLD (parse_url): " . $bottom_host_name;</code>
このコードは出力します:
Domain name (regex): example.com Domain name and TLD (parse_url): example.com
以上がさまざまな方法を使用して PHP で URL からドメイン名を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。