毎日の開発では、特にインターフェイス開発、Webページジャンプ、またはリンク解像度を実行する場合、URLのパラメーターを処理する必要があります。 PHP言語を使用している場合、2つの機能PARSE_URLとPARSE_STRは、URLを処理する武器になります。
この記事では、 parse_url関数を使用してURLのクエリパーツを抽出し、 parse_str関数を介してPHPアレイに変換して、各パラメーター値に簡単にアクセスする方法を示します。
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を使用する必要があります。
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を簡単に取得できます。
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アレイを介して簡単にアクセスできます。
実際のシナリオでは、URLにクエリパラメーターがまったくない場合にも、フォールトトレランスを行う必要があります。
$url = "https://gitbox.net/home";
$parsedUrl = parse_url($url);
$queryParams = [];
if (isset($parsedUrl['query'])) {
parse_str($parsedUrl['query'], $queryParams);
}
print_r($queryParams); // 出力は空の配列です