function drupal_get_query_parameters in Drupal 7
Processes a URL query parameter array to remove unwanted elements.
Parameters
$query: (optional) An array to be processed. Defaults to $_GET.
$exclude: (optional) A list of $query array keys to remove. Use "parent[child]" to exclude nested items. Defaults to array('q').
$parent: Internal use only. Used to build the $query array key for nested items.
Return value
An array containing query parameters, which can be used for url().
Related topics
11 calls to drupal_get_query_parameters()
- CommonURLUnitTest::testDrupalGetQueryParameters in modules/
simpletest/ tests/ common.test - Test drupal_get_query_parameters().
- drupal_current_script_url in includes/
install.inc - Returns the URL of the current script, with modified query parameters.
- drupal_get_destination in includes/
common.inc - Prepares a 'destination' URL query parameter for use with drupal_goto().
- drupal_redirect_form in includes/
form.inc - Redirects the user to a URL after a form has been processed.
- overlay_drupal_goto_alter in modules/
overlay/ overlay.module - Implements hook_drupal_goto_alter().
File
- includes/
common.inc, line 417 - Common functions that many Drupal modules will need to reference.
Code
function drupal_get_query_parameters(array $query = NULL, array $exclude = array(
'q',
), $parent = '') {
// Set defaults, if none given.
if (!isset($query)) {
$query = $_GET;
}
// If $exclude is empty, there is nothing to filter.
if (empty($exclude)) {
return $query;
}
elseif (!$parent) {
$exclude = array_flip($exclude);
}
$params = array();
foreach ($query as $key => $value) {
$string_key = $parent ? $parent . '[' . $key . ']' : $key;
if (isset($exclude[$string_key])) {
continue;
}
if (is_array($value)) {
$params[$key] = drupal_get_query_parameters($value, $exclude, $string_key);
}
else {
$params[$key] = $value;
}
}
return $params;
}