今日の人気記事

  1. HTML内でPHPスクリプトを実行 - 埋め込み
  2. PHP + Apache 環境の構築
  3. PHPのダウンロードとインストール - Windows環境
  4. PHP + Apacheのインストール - Linux環境 - CentOS
  5. 外部コマンドを実行 - exec()、system()

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が変数・配列として、返されています。

スポンサーリンク