Fixed URL generation wich occasionally fails when parameters are added
This commit is contained in:
@@ -145,17 +145,22 @@ class URL
|
||||
foreach ($parameters as $name => $value) {
|
||||
|
||||
// Remove this parameter from base URL to prevent duplicate parameters
|
||||
$base = preg_replace('/([?&])'.$name.'=([^&])*(&|$)/', '', $base);
|
||||
$base = preg_replace('/([?&])'.$name.'=([^&])*(&|$)/', '$1', $base);
|
||||
|
||||
$queryString .= sprintf("%s=%s&", urlencode($name), urlencode($value));
|
||||
}
|
||||
}
|
||||
|
||||
$sepChar = strstr($base, '?') === false ? '?' : '&';
|
||||
if ('' !== $queryString = rtrim($queryString, "&")) {
|
||||
|
||||
if ('' !== $queryString = rtrim($queryString, "&")) $queryString = $sepChar . $queryString;
|
||||
|
||||
return rtrim($base, '&') . $queryString;
|
||||
$base = rtrim($base, "?&");
|
||||
|
||||
$sepChar = strstr($base, '?') === false ? '?' : '&';
|
||||
|
||||
$queryString = $sepChar . $queryString;
|
||||
}
|
||||
|
||||
return $base . $queryString;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user