PHP で URL の文字列からパラメータを取得する方法
-
PHP で URL 文字列からパラメータを取得するための
parse_url()
およびparse_str()
関数の使用法 -
PHP で
$_GET
変数を使用して URL 文字列からパラメーターを取得する
この記事では、PHP で URL string
からパラメータを取得する方法を紹介します。
- 関数
parse_url()
を使用する - 関数
parse_str()
を使用する - 変数
$_GET
を使用する
PHP で URL 文字列からパラメータを取得するための parse_url()
および parse_str()
関数の使用法
URL string
からパラメータを取得するには、組み込み関数 parse_url()
と parse_str()
を利用します。これらの関数はパラメータを取得するために併用します。関数 parse_url
は URL をパラメータに分割します。その後、parse_string
は必要なパラメータを取得します。
関数 parse_url()
の正しい構文は以下の通りです。
parse_url( $url, $component);
組み込み関数 parse_url
は 2つのパラメータを持ちます。パラメータの詳細は以下の通りです。
パラメータ | 説明 | |
---|---|---|
$url |
必須 | パラメータを取得したい URL です。 |
$component |
オプション | 特定の URL のコンポーネントを取得するために使用します。 |
この関数は URL のコンポーネントを返します。URL が正しくフォーマットされていない場合、この関数は False
を返すことがあります。
関数 parse_str()
を使用する正しい構文は以下の通りです。
parse_str( $string, $result);
組み込み関数 parse_str
は 2つのパラメータを持ちます。パラメータの詳細は以下の通りです。
パラメータ | 説明 | |
---|---|---|
$string |
必須 | 変数に変換されるのは入力 string です。 |
$result |
必須 | このパラメータが渡された場合、変数はその中に格納されます。 |
この関数は何も返しません。
以下のプログラムは、これらの関数を使って URL string
からパラメータを取得する方法を示しています。
<?php
$url = "https://testurl.com/test/1234?email=abc@test.com&name=sarah";
$components = parse_url($url);
parse_str($components['query'], $results);
print_r($results);
?>
出力:
Array
(
[email] => abc@test.com
[name] => sarah
)
さて、メールのパラメータだけを取得したい場合は、プログラムの中で以下の変更を行います。
<?php
$url = "https://testurl.com/test/1234?email=abc@test.com&name=sarah";
$components = parse_url($url);
parse_str($components['query'], $results);
echo($results['email']);
?>
出力:
abc@test.com
パラメータ $component
を parse_url()
関数に渡すこともできます。
<?php
$url = "https://testurl.com/test/1234?email=abc@test.com&name=sarah";
$components = parse_url($url, PHP_URL_QUERY);
//$component parameter is PHP_URL_QUERY
parse_str($components, $results);
print_r($results);
?>
出力:
Array
(
[email] => abc@test.com
[name] => sarah
)
PHP で $_GET
変数を使用して URL 文字列からパラメーターを取得する
PHP では、$_GET
変数を使って URL の文字列からパラメータを取得することもできます。これは superglobal
変数であり、すべてのスコープで利用できることを意味します。この変数は、HTML フォームから URL というデータを取得します。
フォームからの URL が _COPY10@test.com&name=sarah
であると仮定します。この変数を使って URL string
からパラメータを取得するプログラムは以下のようになります。
<?php
echo $_GET['email'] . $_GET['name']
?>
出力:
abc@test.com
sarah