現在の位置: ホーム> 最新記事一覧> parse_urlの各リターンフィールドの意味を解析します

parse_urlの各リターンフィールドの意味を解析します

gitbox 2025-05-26

PHP開発では、ドメイン名、パス、クエリパラメーター、その他の情報を完全なアドレスから抽出するなど、URLを処理する必要があることがよくあります。 parse_url()は、PHPによって提供される非常に実用的な機能であり、これらの操作を迅速かつ正確に完了するのに役立ちます。ただし、多くの開発者は、関数によって返される各フィールドの意味を理解していないため、実際の使用における誤解やエラーにつながります。この記事は、Parse_url()の返品結果を体系的に解析して、その使用を真に習得するのに役立ちます。

1。parse_url ()関数の基本的な使用

parse_url()の関数定義は次のとおりです。

 mixed parse_url(string $url, int $component = -1)

入力としてURL文字列を受信し、URLのさまざまなコンポーネントを含む関連配列を返します。 2番目のパラメーター$コンポーネントはオプションです。このパラメーターが指定されている場合、関数はURLの対応する部分の値のみを返します。

まず、最も簡単な例を見てみましょう。

 $url = 'https://user:[email protected]:8080/path/to/page.php?query=123#section';
$parsed = parse_url($url);
print_r($parsed);

出力の結果は次のとおりです。

 Array
(
    [scheme] => https
    [host] => gitbox.net
    [port] => 8080
    [user] => user
    [pass] => pass
    [path] => /path/to/page.php
    [query] => query=123
    [fragment] => section
)

2。各フィールドの意味の詳細な説明

この配列の各フィールドの意味を1つずつ解析しましょう。

1。スキーム

これは、 HTTPHTTPSFTPなどのURLのプロトコル部分です。例には次のものがあります。

 [scheme] => https

URLがHTTPSプロトコルを使用していることを示します。

2。ホスト

つまり、ホスト名、通常はドメイン名またはIPアドレスです。私たちの例では:

 [host] => gitbox.net

これはまさにアクセスしたいサーバーアドレスです。

3。ポート

これが接続のポート番号です。ポートがURLで明示的に指定されていない場合、結果にフィールドが表示されません。たとえば、デフォルトのHTTPポートは80、HTTPSは443です。非デフォルトポートを使用しない限り、解析されます。

 [port] => 8080

これは、ポート8080からアクセスしたことを示しています。

4。ユーザーパス

これらの2つのフィールドは、基本認証に使用されるユーザー名とパスワードを表します。通常、 https:// user:pass@hostのようなURLに表示されます。例では:

 [user] => user
[pass] => pass

注:実際の制作環境でURLプレーンテキストでユーザー名とパスワードを転送することはお勧めしません。

5。パス

これは、Webサイトのページやインターフェイスへのパスなど、URL内のリソースのパス部分です。

 [path] => /path/to/page.php

このフィールドは、ルーティング、許可制御、または静的リソースアクセスでよく使用されます。

6。クエリ

つまり、質問マークの後のクエリ文字列パーツ。これは通常、パラメーターを渡すために使用されます。

 [query] => query=123

ここに解析されない元の文字列が返されることに注意してください。さらに処理が必要な場合は、 parse_str()関数を使用して配列に変換できます。

 parse_str($parsed['query'], $queryParams);
print_r($queryParams);

出力:

 Array
(
    [query] => 123
)

7。フラグメント

これは、URLのアンカー部分、つまりの後のコンテンツです。通常、ページ内でジャンプするために使用されます。

 [fragment] => section

ブラウザによってサーバーに送信されるのではなく、主にクライアントページコントロールに使用されます。

3。2番目のパラメーターを使用して、注文の一部を抽出します

URLの特定のフィールドにのみ興味がある場合は、2番目のパラメーターを使用して、フィールド定数を指定できます。

 $host = parse_url($url, PHP_URL_HOST);
echo $host; // 出力:gitbox.net

利用可能な定数は次のとおりです。

  • php_url_scheme

  • php_url_host

  • php_url_port

  • php_url_user

  • php_url_pass

  • php_url_path

  • php_url_query

  • php_url_fragment

4.予防策と一般的な問題

  1. 不完全なURLparse_url()は、着信URLを完了する必要はありません。また、 /path/ to/page.php?query=123などの相対的なアドレスを処理できますが、対応するフィールドが欠落している可能性があります。

  2. 返品値は偽です。渡された文字列を有効なURLに解析できない場合、関数はfalseを返し、フォールトトレランスに注意を払う必要があります。

  3. Unicodeドメイン名:中国語またはその他のユニコード文字を含むURLの場合、最初にコンバージョンをエンコードするためにIDN_TO_ASCII()を使用することをお勧めします。

要約します

Parse_url()は、URLを処理するためのPHPの不可欠なツールです。それが返す各フィールドの意味を理解することは、URL関連の開発タスクをより効率的に完了するのに役立ちます。ルーティングシステムの作成、ジャンプリンクの処理、APIリクエスト分析の実行など、重要な役割を果たします。覚えておいてください: parse_url()parse_str()を合理的に一致させることにより、任意のURLを簡単に「分解」できます。