function drupal_get_query_parameters

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().

... See full list

File

includes/common.inc, line 417

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;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.