PHP で URL の文字列からパラメータを取得する方法

  1. PHP で URL 文字列からパラメータを取得するための parse_url() および parse_str() 関数の使用法
  2. 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/[email protected]&name=sarah";
$components = parse_url($url);
parse_str($components['query'], $results);
print_r($results); 
?> 

出力:

Array
(
    [email] => [email protected]
    [name] => sarah
)

さて、メールのパラメータだけを取得したい場合は、プログラムの中で以下の変更を行います。

<?php 
$url = "https://testurl.com/test/[email protected]&name=sarah";
$components = parse_url($url);
parse_str($components['query'], $results);
echo($results['email']); 
?> 

出力:

[email protected]

パラメータ $componentparse_url() 関数に渡すこともできます。

<?php 
$url = "https://testurl.com/test/[email protected]&name=sarah";
$components = parse_url($url, PHP_URL_QUERY);
//$component parameter is PHP_URL_QUERY
parse_str($components, $results);
print_r($results); 
?> 

出力:

Array
(
    [email] => [email protected]
    [name] => sarah
)

PHP で $_GET 変数を使用して URL 文字列からパラメーターを取得する

PHP では、$_GET 変数を使って URL の文字列からパラメータを取得することもできます。これは superglobal 変数であり、すべてのスコープで利用できることを意味します。この変数は、HTML フォームから URL というデータを取得します。

フォームからの URL が [email protected]&name=sarah であると仮定します。この変数を使って URL string からパラメータを取得するプログラムは以下のようになります。

<?php 
echo $_GET['email'] . $_GET['name']
?> 

出力:

[email protected]
sarah

関連記事 - PHP String

  • PHP で配列を文字列に変換する方法
  • PHP で文字列を数値に変換する方法
  • comments powered by Disqus