diff --git a/includes/common.inc b/includes/common.inc index 8755c94..fe7db19 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -446,13 +446,7 @@ function drupal_get_query_parameters(array $query = NULL, array $exclude = array * An array of url decoded couples $param_name => $value. */ function drupal_get_query_array($query) { - $result = array(); - if (!empty($query)) { - foreach (explode('&', $query) as $param) { - $param = explode('=', $param); - $result[$param[0]] = isset($param[1]) ? rawurldecode($param[1]) : ''; - } - } + parse_str($query, $result); return $result; } diff --git a/includes/locale.inc b/includes/locale.inc index 7fb8d64..7be15e3 100644 --- a/includes/locale.inc +++ b/includes/locale.inc @@ -490,7 +490,7 @@ function locale_language_url_rewrite_session(&$path, &$options) { // language preference even with cookies disabled. if ($query_rewrite) { if (is_string($options['query'])) { - $options['query'] = drupal_get_query_array($options['query']); + parse_str($options['query'], $options['query']); } if (!isset($options['query'][$query_param])) { $options['query'][$query_param] = $query_value; diff --git a/modules/menu/menu.admin.inc b/modules/menu/menu.admin.inc index 226c3b0..70c44a4 100644 --- a/modules/menu/menu.admin.inc +++ b/modules/menu/menu.admin.inc @@ -375,7 +375,7 @@ function menu_edit_item_validate($form, &$form_state) { if (!url_is_external($item['link_path'])) { $parsed_link = parse_url($item['link_path']); if (isset($parsed_link['query'])) { - $item['options']['query'] = drupal_get_query_array($parsed_link['query']); + parse_str($parsed_link['query'], $item['options']['query']); } else { // Use unset() rather than setting to empty string