diff options
-rw-r--r-- | it_url.class | 7 | ||||
-rwxr-xr-x | tests/it_html.t | 4 |
2 files changed, 7 insertions, 4 deletions
diff --git a/it_url.class b/it_url.class index 5563b5e..976dceb 100644 --- a/it_url.class +++ b/it_url.class @@ -825,11 +825,14 @@ static function _params($params, $keys = null) } +/** + * Similar to php's parse_str() but leaves . and space in arg names intact + */ static function parse_str($query) { - foreach (explode('&', $query, 2) as $arg) + foreach (explode('&', $query) as $arg) { - list($key, $value) = explode("=", $arg, 2); + list($key, $value) = explode('=', $arg, 2); $result[urldecode($key)] = urldecode($value); } diff --git a/tests/it_html.t b/tests/it_html.t index 2291c54..77c441e 100755 --- a/tests/it_html.t +++ b/tests/it_html.t @@ -190,8 +190,8 @@ is( ); is( - U("/foo.html?bar=qux", array('bar' => "baz")), - '/foo.html?bar=baz', + U("/foo.html?a=b&bar=qux&c=d", array('bar' => "baz")), + '/foo.html?a=b&bar=baz&c=d', 'U() args override get params in base url' ); |