Объединение get параметров - IlyaKovanov/lib GitHub Wiki

<?
function mergeGetParameters($newUrl) {
    // Получаем текущие GET параметры
    $currentParams = $_GET;

    // Парсим новые параметры из переданного URL
    $urlParts = parse_url($newUrl);
    parse_str($urlParts['query'] ?? '', $newParams);

    // Объединяем текущие и новые параметры
    $mergedParams = array_merge($newParams, $currentParams);

    // Формируем новый URL с объединенными параметрами
    $newQueryString = http_build_query($mergedParams);
    $newUrlWithParams = $urlParts['scheme'] . '://' . $urlParts['host'] . $urlParts['path'];

    // Добавляем параметры, если они есть
    if (!empty($newQueryString)) {
        $newUrlWithParams .= '?' . $newQueryString;
    }

    return $newUrlWithParams;
}

// Пример использования
$currentUrl = 'https://example.com/test/?ID=5&SECTION=11';
$newUrl = 'https://newsite.com/?PARAM=22&TEMP=15';

$resultUrl = mergeGetParameters($newUrl);
echo $resultUrl; // Вывод: https://newsite.com/?PARAM=22&TEMP=15&ID=5&SECTION=11