1.20.x link.module _link_parse_str($query)

Replaces the PHP parse_str() function.

Because parse_str replaces the following characters in query parameters name in order to maintain compatibility with deprecated register_globals directive:

  • chr(32) ( ) (space)
  • chr(46) (.) (dot)
  • chr(91) ([) (open square bracket)
  • chr(128) - chr(159) (various)

Parameters

string $query: Query to parse.

Return value

array: Array of query parameters.

See also

http://php.net/manual/en/language.variables.external.php#81080

File

modules/link/link.module, line 681
Defines simple link field types.

Code

function _link_parse_str($query) {
  $query_array = array();

  $pairs = explode('&', $query);
  foreach ($pairs as $pair) {
    $name_value = explode('=', $pair, 2);
    $name = urldecode($name_value[0]);
    $value = isset($name_value[1]) ? urldecode($name_value[1]) : NULL;
    $query_array[$name] = $value;
  }

  return $query_array;
}