HTTPクエリを配列に展開する関数
ありそうでない(みつからなかった)ので、ついカッとなって作った。
kye=value&foo=hoge&bar=123 の様なGETの引数として渡されるクエリ文字列を配列に展開する関数
まあ、普通は$_GETとか$_REQUESTとかで自動で展開させるので使わないが・・・・
この逆は、http_build_query関数があるんだけど・・・
関数名はhttp_explode_query の方が良いかも?
function explodeQuery($query) { $result = array(); foreach (explode('&', $query) as $entry) { $element = explode('=', $entry); if (isset($element[0])) { $key = $element[0]; } else { return array(); } $value = null; if (isset($element[1])) { $value = $element[1]; } $result[$key] = $value; } return $result; }
ちなみに完全なURLの場合には対応していないのでparse_urlを使って下記のようにするのが吉かと
$url = 'http://d.hatena.ne.jp/narusase/?kye=value&foo=hoge&bar=123'; $url_param = parse_url($url); $result = explodeQuery($url_param['query']); echo $result;
・・・しかし、OpenSocialプラットフォームの構築やらOAuthのプラットフォーム構築やらいろいろと忙しかったせいで、だいぶ久方ぶりのまともな記事だな・・・orz