public static function getQueryStringWithExcludedParameters($queryParameters, $parametersToExclude)
{
$validQuery = '';
$separator = '&';
foreach ($queryParameters as $name => $value) {
// decode encoded square brackets
$name = str_replace(array('%5B', '%5D'), array('[', ']'), $name);
if (!self::in_array_matches_regex(strtolower($name), $parametersToExclude)) {
if (is_array($value)) {
foreach ($value as $param) {
if ($param === false) {
$validQuery .= $name . '[]' . $separator;
} else {
$validQuery .= $name . '[]=' . $param . $separator;
}
}
} elseif ($value === false) {
$validQuery .= $name . $separator;
} else {
$validQuery .= $name . '=' . $value . $separator;
}
}
}
$validQuery = substr($validQuery, 0, -strlen($separator));
return $validQuery;
}