function drupal_get_query_parameters
7.x common.inc | drupal_get_query_parameters(array $query = NULL, array $exclude = array('q'), $parent = '') |
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 drupal-7.x/
modules/ simpletest/ tests/ common.test - Test drupal_get_query_parameters().
- drupal_current_script_url in drupal-7.x/
includes/ install.inc - Returns the URL of the current script, with modified query parameters.
- drupal_get_destination in drupal-7.x/
includes/ common.inc - Prepares a 'destination' URL query parameter for use with drupal_goto().
- drupal_redirect_form in drupal-7.x/
includes/ form.inc - Redirects the user to a URL after a form has been processed.
- drupal_validate_form in drupal-7.x/
includes/ form.inc - Validates user-submitted form data in the $form_state array.
File
- drupal-7.x/
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;
}