Не так много для проверки ошибок, но если s
гарантированно существует, это будет работать:
list($base, $query) = explode('?', $url);
parse_str($query, $vars);
$result = $base.'?s='.rawurlencode($vars['s']);
Он также будет работать независимо от того, в какой позиции s
появляется в строке запроса. Я делаю минимальный начальный шаг "разбора" с explode
, но если это не так, вы всегда можете ввести большие пушки и вместо этого использовать parse_url
за счет гораздо более многословный.