今日の人気記事

  1. 配列を文字列に変換する - implode()
  2. 簡単なPHPスクリプトを動かしてみよう
  3. ファイルから1行ずつ読み込む - fgets()
  4. ユニークなファイル名の一時ファイルを作成 - tempnam()
  5. ヒアドキュメント

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

ネットワーク の人気記事

  1. IPアドレスからホスト名を取得 - gethostbyaddr()
  2. URLのクエリ文字列を変数に - parse_str()

関連記事(一部広告含む)