From faf91600a945de38c52e32a4b4f8871c7814b6cf Mon Sep 17 00:00:00 2001 From: Jaime Perez Crespo <jaime.perez@uninett.no> Date: Tue, 21 Apr 2015 11:12:14 +0200 Subject: [PATCH] Move SimpleSAML_Utilities::parseQueryString() to SimpleSAML\Utils\HTTP::parseQueryString() and deprecate the former. --- lib/SimpleSAML/Utilities.php | 27 ++------------------------ lib/SimpleSAML/Utils/HTTP.php | 36 +++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 25 deletions(-) diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php index 170156c2d..a0dab57b6 100644 --- a/lib/SimpleSAML/Utilities.php +++ b/lib/SimpleSAML/Utilities.php @@ -939,33 +939,10 @@ class SimpleSAML_Utilities { /** - * Parse a query string into an array. - * - * This function parses a query string into an array, similar to the way the builtin - * 'parse_str' works, except it doesn't handle arrays, and it doesn't do "magic quotes". - * - * Query parameters without values will be set to an empty string. - * - * @param $query_string The query string which should be parsed. - * @return The query string as an associative array. + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::parseQueryString() instead. */ public static function parseQueryString($query_string) { - assert('is_string($query_string)'); - - $res = array(); - foreach(explode('&', $query_string) as $param) { - $param = explode('=', $param); - $name = urldecode($param[0]); - if(count($param) === 1) { - $value = ''; - } else { - $value = urldecode($param[1]); - } - - $res[$name] = $value; - } - - return $res; + return \SimpleSAML\Utils\HTTP::parseQueryString($query_string); } diff --git a/lib/SimpleSAML/Utils/HTTP.php b/lib/SimpleSAML/Utils/HTTP.php index 01a6209fd..d501162af 100644 --- a/lib/SimpleSAML/Utils/HTTP.php +++ b/lib/SimpleSAML/Utils/HTTP.php @@ -87,4 +87,40 @@ class HTTP } return $port; } + + + /** + * Parse a query string into an array. + * + * This function parses a query string into an array, similar to the way the builtin 'parse_str' works, except it + * doesn't handle arrays, and it doesn't do "magic quotes". + * + * Query parameters without values will be set to an empty string. + * + * @param string $query_string The query string which should be parsed. + * + * @return array The query string as an associative array. + * @throws \SimpleSAML_Error_Exception If $query_string is not a string. + * + * @author Olav Morken, UNINETT AS <olav.morken@uninett.no> + */ + public static function parseQueryString($query_string) + { + if (!is_string($query_string)) { + throw new \SimpleSAML_Error_Exception('Invalid input parameters'); + } + + $res = array(); + foreach (explode('&', $query_string) as $param) { + $param = explode('=', $param); + $name = urldecode($param[0]); + if (count($param) === 1) { + $value = ''; + } else { + $value = urldecode($param[1]); + } + $res[$name] = $value; + } + return $res; + } } \ No newline at end of file -- GitLab