URLのクエリ文字列を変数に - parse_str()
当ページのリンクには広告が含まれています。
プログラミング言語PHPで、指定したクエリ文字列をパース(分解)し、変数に格納する関数 parse_str()を紹介します。
クエリ文字列
クエリ文字列とは、URLの末尾(?以降)の文字列のことです。例えば、「Yahoo!」で「PHP」という文字列を検索すると以下のようなクエリ文字列になります。
http://search.yahoo.co.jp/search?p=PHP&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=
クエリ文字列は、「変数」と「値」からなり、ユーザーの意図・動作などをサーバーに伝える役割を持っています。
変数1=値1&変数2=値2&変数3=値3……
今回紹介する関数 parse_str()は、サーバー側でURLのクエリ文字列を処理する場合に利用します。
parse_str関数
void parse_str ( string $string [, array &$array ] )
指定したクエリ文字列をパースし、変数に格納します。
引数 $string パースする文字列を指定します。 &$array 指定した場合 → パースした文字列を格納する配列を指定します。 指定しない場合(デフォルト) → クエリ文字列の変数に値を格納します。
返り値
返り値はありません。
サンプルコード
指定したクエリ文字列をパースし、変数に格納するサンプルコードです。
parse_url( クエリ文字列 [,配列] )
<?php /* クエリ文字・格納配列を定義 */ $query = "q=php&w=intro"; $var=array(); /* クエリ文字列を変数に */ parse_str($query); var_dump($q,$w); /* クエリ文字列を配列に */ parse_str($query, $var); print_r($var); ?>
実行結果です。
string(3) "php" string(5) "intro" Array ( [q] => php [w] => intro )
パースされたURLが変数・配列として、返されています。