Бортовой журнал Ктулху

Добавить GET-параметр в URL

Пару примеров как это сделать.

Простой пример.

Возвращает строку если в URL есть параметры и NULL если нет

$query = parse_url($url, PHP_URL_QUERY);
if ($query) {
 $url .= '&category=1';
} else {
 $url .= '?category=1';
}

Продвинутый пример с множественными значениями одного элемента

$url = 'http://example.com/search?keyword=test&category=1&tags[]=fun&tags[]=great';
$url_parts = parse_url($url);
parse_str($url_parts['query'], $params);
$params['category'] = 2; // Перезаписать если существует
$params['tags'][] = 'cool'; // Разрешает множественные значения
// Если кодировать все значения
$url_parts['query'] = http_build_query($params);
// Если установлен pecl_http
echo http_build_url($url_parts);
// Если нет
echo $url_parts['scheme'] . '://' . $url_parts['host'] . $url_parts['path'] . '?' . $url_parts['query'];

Отсюда