Fixed URL generation wich occasionally fails when parameters are added

This commit is contained in:
Franck Allimant
2014-02-04 12:39:35 +01:00
parent 736885f5bd
commit 60988123f9
2 changed files with 78 additions and 41 deletions

View File

@@ -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;
}
/**