You are here

function query_parameters_to_url_decode_encoded_query_parameter in Query Parameters To URL 7

Decodes an encoded string into an array of query parameters.

Example:

  • /p/a/0__1__2__3/b/4__5__6/c/7 will become an array equivalent to
  • ?a[0][1][2]=3&b[4][5]=6&c=7
1 call to query_parameters_to_url_decode_encoded_query_parameter()
query_parameters_to_url_decode_query_parameter_values in ./query_parameters_to_url.module
Decodes a query parameter values string into its array form.

File

./query_parameters_to_url.module, line 325
Query Arguments To URL module.

Code

function query_parameters_to_url_decode_encoded_query_parameter($encoded) {
  $nested_key = query_parameters_to_url_nested_key();
  $nested_value = query_parameters_to_url_nested_values_delimiter();
  $decoded = array();
  $parameters = explode($nested_value, $encoded);
  foreach ($parameters as $parameter) {
    $parameter_parts = explode($nested_key, $parameter);
    $parameter_value = array_pop($parameter_parts);

    // The conditional is for validation purposes, so it doesn't throw a fatal
    // error. Scary.
    if (!empty($parameter_parts)) {
      drupal_array_set_nested_value($decoded, $parameter_parts, $parameter_value);
    }
  }
  return $decoded;
}