現在の位置: ホーム> 最新記事一覧> PHPでStristrを使用してURLからドメイン名を抽出します

PHPでStristrを使用してURLからドメイン名を抽出します

gitbox 2025-09-08

Web開発では、URLでドメイン名を抽出することは一般的な要件です。 PHPは、文字列を操作するのに役立つ多くの機能を提供し、 STRSTR関数を使用してURLのドメイン名を抽出および操作できます。今日は、この目標を達成するためにStristrを使用する方法について説明します。

ストリスト機能とは何ですか?

Strristrは、PHPの文字列関数であり、文字列が最初に表示され、その場所から文字列の端まですべてを返す場所を見つけます。 STRPOSとは異なり、 STRPOSはケースを無視します。これは、ほとんどの場合、ドメイン名がケースに感受性がないため、URLのドメイン名を処理するのに特に便利です。

基本的な構文

<span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$before_needle</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
  • $ haystack :ターゲット文字列、通常は情報を抽出するURLです。

  • $針:検索するサブストリング、ここでは「://」を使用して、ドメイン名の開始位置を決定するのに役立ちます。

  • $ before_needle :オプションパラメーター。 trueに設定した場合、一致した部分の前にコンテンツを返します。 false (デフォルト)の場合、一致する部分とその後のコンテンツを返します。

URLからドメイン名を抽出する方法は?

次に、例としてURLからドメイン名を抽出することにより、 Strristの実際のアプリケーションを導入します。次のURLがあるとします。

 <span><span><span class="hljs-variable">$url</span></span><span> = </span><span><span class="hljs-string">"https://www.example.com/path/to/page?query=123"</span></span><span>;
</span></span>

このURLからドメイン名パーツ、つまりwww.example.comを抽出したいと思います。

コード実装

<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$url</span></span><span> = </span><span><span class="hljs-string">"https://www.example.com/path/to/page?query=123"</span></span><span>;

</span><span><span class="hljs-comment">// 使用 stristr 探す '://' 後者の部分</span></span><span>
</span><span><span class="hljs-variable">$domain_part</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-variable">$url</span></span><span>, </span><span><span class="hljs-string">'://'</span></span><span>);

</span><span><span class="hljs-comment">// 見つかった場合,取り除く '://' とパス部分</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$domain_part</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-comment">// 取り除く '://' 最初のものを傍受します '/' 前の部分</span></span><span>
    </span><span><span class="hljs-variable">$domain</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$domain_part</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$domain_part</span></span><span>, </span><span><span class="hljs-string">'/'</span></span><span>) - </span><span><span class="hljs-number">3</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ドメイン名はです: "</span></span><span> . </span><span><span class="hljs-variable">$domain</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"URL 無効な形式"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

コード解析

  1. strristr($ url、 '://') :最初にstrristrを使用して://を使用します。 Strristは次のセクションから以下の後部分を返し、それが見つからない場合は虚偽を返します。

  2. substr($ domain_part、3、strpos($ domain_part、 '/')-3)subsstrposを介してドメイン名部分を傍受した後、 substrは、最初の//URLに表示されるまで、3番目の文字をインターセプトし始めます。

  3. エコー「ドメイン名は:」です。 $ domain; :最後に、抽出されたドメイン名を出力します。

注意すべきこと

  1. URL形式:入力されたURLは合法であり、仕様に準拠していると想定しています。 URLに://がない場合、 Strristrは適切に機能しません。したがって、URLを処理するときは、最初にそれらを確認するか、例外処理ロジックを追加することが最善です。

  2. サブドメイン名の問題:URLにblog.example.comなどのサブドメイン名が含まれている場合、上記のコードは完全なドメイン名(サブドメイン名を含む)を正しく抽出できます。

  3. 異なるプロトコル:URLが異なるプロトコル( HTTPHTTPSFTPなど)を使用している場合、 STRRISTもケースを無視するために適用されます。

要約します

Strrist関数を使用してURLSからドメイン名を抽出することは、これを行うための簡単で効率的な方法です。 StrristrSubstrを組み合わせることで、ドメイン名の部分を簡単に見つけて、必要な情報を抽出できます。実際の開発では、この方法は、パスとクエリパラメーターを含むURLを処理し、ケースの無知を確保するのに非常に適しています。

  • 関連タグ:

    URL