Мне кажется, это работает:
$urlParts = parse_url($url);
parse_str($urlParts['query'], $queryParts);
$urlReconstructed = sprintf('%s://%s%s?', $urlParts['scheme'], $urlParts['host'], $urlParts['path']);
foreach ($queryParts as $key => $value)
{
$urlReconstructed .= $key . "=" . urlencode($value);
}
echo $urlReconstructed;
Спасибо, Пекка, конвертируй свой комментарий в ответ.Если не найдется лучшего ответа, я накажу правильный ответ.