ホームページ  >  記事  >  バックエンド開発  >  さまざまな方法を使用して PHP で URL からドメイン名を抽出する方法

さまざまな方法を使用して PHP で URL からドメイン名を抽出する方法

DDD
DDDオリジナル
2024-10-17 17:17:02913ブラウズ

How to Extract the Domain Name from a URL in PHP Using Different Methods?

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。