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.
public static parseQueryString ( string $query_string ) : array | ||
$query_string | string | The query string which should be parsed. |
return | array | The query string as an associative array. |
/** * @param string $url * @param array $parameters * @return string */ public static function addQueryParametersToUrl($url, array $parameters) { if (count($parameters) > 0) { $fragmentStart = strpos($url, '#'); if ($fragmentStart !== false) { //strip fragment if any $fragment = substr($url, $fragmentStart); $url = substr($url, 0, $fragmentStart); } else { $fragment = ''; } $queryStart = strpos($url, '?'); if ($queryStart !== false) { //strip query if any $query = \SimpleSAML\Utils\HTTP::parseQueryString(substr($url, $queryStart + 1)); $url = substr($url, 0, $queryStart); } else { $query = array(); } $query = array_merge($query, $parameters); $url .= '?' . http_build_query($query, '', '&') . $fragment; } return $url; }
/** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::parseQueryString() instead. */ public static function parseQueryString($query_string) { return \SimpleSAML\Utils\HTTP::parseQueryString($query_string); }