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