現在の位置: ホーム> 最新記事一覧> parse_urlとparse_strを使用して、クエリパラメーター配列を取得します

parse_urlとparse_strを使用して、クエリパラメーター配列を取得します

gitbox 2025-05-26

毎日の開発では、特にインターフェイス開発、Webページジャンプ、またはリンク解像度を実行する場合、URLのパラメーターを処理する必要があります。 PHP言語を使用している場合、2つの機能PARSE_URLPARSE_STRは、URLを処理する武器になります。

この記事では、 parse_url関数を使用してURLのクエリパーツを抽出し、 parse_str関数を介してPHPアレイに変換して、各パラメーター値に簡単にアクセスする方法を示します。

1。parse_url関数の概要

parse_urlは、PHPの組み込み関数の1つであり、URLを解析してコンポーネントに分解できます。

  • スキーム(プロトコル)

  • ホスト(ホスト名)

  • ポート(ポート)

  • ユーザー(ユーザー名)

  • パス(パスワード)

  • パス(パス)

  • クエリ(クエリ文字列)

  • フラグメント(アンカーポイント)

例:

 $url = "https://gitbox.net/search?q=php&sort=desc&page=2";
$parsed = parse_url($url);

print_r($parsed);

出力結果:

 Array
(
    [scheme] => https
    [host] => gitbox.net
    [path] => /search
    [query] => q=php&sort=desc&page=2
)

ご覧のとおり、 Parse_urlはURLのクエリパーツを正常に抽出します: q = php&sort = desc&page = 2 。しかし、これはまだ文字列です。アクセス可能な配列になるには、別の関数-Parse_Strを使用する必要があります。

2。parse_str関数の紹介

PARSE_STRは、PHPの組み込み関数でもあり、URLのクエリ文字列を連想配列に解析できます。

例:

 $queryString = "q=php&sort=desc&page=2";
parse_str($queryString, $queryArray);

print_r($queryArray);

出力結果:

 Array
(
    [q] => php
    [sort] => desc
    [page] => 2
)

各パラメーターが配列要素になったので、 $ queryArray ['q']または2〜 $ queryArray ['page']からPHPを簡単に取得できます。

3.両方を組み合わせて使用​​します

2つの関数を一緒に使用すると、任意のURLでクエリパラメーター配列をミニマリストで取得できます。

 $url = "https://gitbox.net/search?q=php&sort=desc&page=2";

// 最初のステップ:使用 parse_url 得る query 一部
$parsedUrl = parse_url($url);
$queryString = isset($parsedUrl['query']) ? $parsedUrl['query'] : '';

// ステップ2:使用 parse_str 意思 query 文字列を配列に変換します
$queryParams = [];
parse_str($queryString, $queryParams);

// 出力ビュー
print_r($queryParams);

このようにして、URLにいくつのパラメーターが含まれていても、 $ QueryParamsアレイを介して簡単にアクセスできます。

4.空のクエリまたはクエリなしを処理します

実際のシナリオでは、URLにクエリパラメーターがまったくない場合にも、フォールトトレランスを行う必要があります。

 $url = "https://gitbox.net/home";
$parsedUrl = parse_url($url);

$queryParams = [];
if (isset($parsedUrl['query'])) {
    parse_str($parsedUrl['query'], $queryParams);
}

print_r($queryParams); // 出力は空の配列です